آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دیزاین پترن سینگلتون (Singleton Design Pattern) در جاوا اسکریپت

کاشی زاده  11 سال پیش  11 سال پیش
+10 0

چند وقت پیش یکی از دوستان زحمت کشید و آموزش پیاده سازی دیزاین پترن سینگلتون رو برای 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 میده .

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
محمد آقا  11 سال پیش
0 0

ببخشید آموزش مناسبی برای دیزاین پترن ها ( انگلیسی یا فارسی ) در اختیار دارید ؟

ویرایش : ببخشید بجای کامنت اشتباهی پست دادم

+3 0
فکر میکنم استاد آموزش این دیزاین پترن رو دادن ولی انشاا... بعد از اینکه استاد آموزش ها رو به طور کامل بارگذاری کنند من تدوین آموزش های وب و ناگفته هارو شروع میکنم مثل اندروید . (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .