مهندس نرم افزار. با کمی فعالیت در pullrequest.ir
ساخت کلاس Singleton در جاوااسکریپت ES6
ساختن کلاس و استفاده ازش در جاوااسکریپت که به صورت ذاتی یک زبون Object Oriented نیست، همیشه برای توسعه دهنده ها کار چالش برانگیزی بوده. با معرفی شدن استاندارد ES6 در سال ۲۰۱۵، بخش عظیمی از این چالش ها و تمامی ترفندهایی که برای شبیه سازی کلاس ها در جاوااسکریپت استفاده می شد، دیگه کاربردشون رو از دست دادن. درحال حاضر اکثر توسعه دهندگان جاوااسکریپت از استاندارد ES6 استفاده میکنن و دیگه ساختن و استفاده از کلاس کار نسبتا ساده ای شده.
به عنوان نمونه یه کلاس Student در جی اس مدرن، به سادگی زیر ساخته و استفاده میشه:
// Define
class Student {
constructor(name) {
this.name = name
}
whoAmI() {
return `I am ${this.name}`
}
}
// Use
const todd = new Student('Todd')
todd.whoAmI() // Returns: `I am Todd`
کلاس Singleton
اگر نیاز باشه کلاسی که تعریف میکنید، فقط یه اینستنس ازش وجود داشته باشه و هربار new گرفتن ازش،همون اینستنش رو برگردونه، به این کلاس میگن کلاس Singleton. نمونه هایی که میشه از Singleton استفاده کرد:
- سرویس لاگر
- سرویس ذخیره سازی و خواندن از یک پوشه در فایل سیستم
- سرویس خواندن از کانفیگ پروژه
- …
استفاده از Singleton همیشه باید ۳ مورد زیر رو پوشش بده. اگر Singleton ای که دارید میسازید هر ۳ مورد رو پوشش نمیده مطمئن باشید دارید جایی از کار رو اشتباه میزنید :دی
- کنترل کردن ارتباطات کانکارنت روی یه ریسورس
- کنترل ارتباط به یه ریسورس از مکان ها و سرویس های مختلف و ایزوله از هم
- تنها یه آبجکت از کلاس خارج بشه
ساخت Singleton در ES6
برای ساخت یه سینگلتون میتونید از کدبیس زیر الهام بگیرید:
// SingletonService.js
let instance = null
class SingletonService {
constructor() {
if (!instance) {
instance = this
}
return instance
}
// All other stuff here
}
مطلبی دیگر از این انتشارات
ریاکت برای تازهکارها - بخش یک
مطلبی دیگر از این انتشارات
سی اس اس ماژولار برای پروژه های بزرگ
مطلبی دیگر از این انتشارات
رفع مشکل نام های طولانی در BEM