دیزاین پترن سینگلتون (Singleton Design Pattern) در جاوا اسکریپت
چند وقت پیش یکی از دوستان زحمت کشید و آموزش پیاده سازی دیزاین پترن سینگلتون رو برای php در این لینک قرار داد .
حالا ما میخوایم این الگو رو در جاوا اسکریپت پیاده سازی کنیم .
دیگه توضیحات لازم رو دوستمون در تاپیک قبلی دادن و فقط ما روش پیاده سازی اون رو در جاوا اسکریپت نشون میدیم.
در ابتدا کلاسی به نام Singletone میسازیم که در آخرش () رو اضافه میکنیم که اصطلاحا به این ها Self-Invoking میگن در واقع اینا خودشون رو صدا میکنن .
var Singleton = (function () {
})();
یک متغیر به این کلاس اضافی میکنیم برای نگهداری رفرنس نمونه ی ساخته شده و متدی برای Initialize ، که توش متد هامون رو قرار میدیم .
var Singleton = (function () {
function init() {
//Inja mitonid method ha , var haye private benevisid
return {
//Inja ham method , var haye public ro benevisid
};
};
})();
حالا یه متد به کلاسمون اضافی میکنیم برای ساخت نمونه ای از کلاس و مقدار دهیش :
var Singleton = (function () {
function init() {
//Inja mitonid method ha , var haye private benevisid
return {
//Inja ham method , var haye public ro benevisid
};
};
return {
getInstance: function () {
if ( !instance ) {
instance = init();
}
return instance;
}
};
})();
خُب کار تموم هست ، میریم تا تستش کنیم :
var instance1 = mySingleton.getInstance();
var instance2= mySingleton.getInstance();
alert("Same instance? " + (instance1 === instance2));
در بالا نوشتیم اگر نمونه ساخته شده اولی با دومی برابر بود بگو ، که به ما true میده .
ببخشید آموزش مناسبی برای دیزاین پترن ها ( انگلیسی یا فارسی ) در اختیار دارید ؟
ویرایش : ببخشید بجای کامنت اشتباهی پست دادم
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .