انجمن برنامه نویسان البرز

تبلیغات

ِDesign Patterns – درس چهارم – Singleton عزیز

ِDesign Patterns – درس چهارم – Singleton عزیز


الگوی طراحی Singleton اولین الگویی است که وقتی در یک مصاحبه بگویید Design Pattern ها را بلدید، آنرا از شما سوال میکنند :))

چرا اینطور است؟ به این دلیل که Singleton بسیار بسیار ساده است و اکثر کسانی که ادعا میکنند Design Pattern ها را میشناسند، فقط با Singleton آشنا هستند!!! از شوخی که بگذریم، Singleton در عین سادگی، الگویی مفید و پرکاربرد است.

singleton دقیقا چیست

همانطور که میدانید، کلمه single در انگلیسی به معنی مفرد و مجرد است. Singleton Pattern هم دقیقا همین مفهوم را دارد. یعنی ما آبجکتی را داریم که در برنامه مفرد است. به زبان ساده تر یعنی اینکه یک بار آبجکت را میسازیم و در سرتاسر برنامه از همان یک آبجکت استفاده میکنیم.

پس ما در واقع یک بار یک آبجکت را میسازیم. آنرا در یک متغیر استاتیک قرار میدهیم و هر جای برنامه که نیاز داشتیم، از آن استفاده میکنیم.

برای مثال در Entity Framework میتوانیم Context را Single کنیم (البته در برنامه های ویندوزی). یا مثلا فکر کنید که برنامه ای داریم که از طریق یک کلاس، SMS ارسال میکند. نیازی نیست که این کلاس ارسال کننده SMS هر بار ساخته شود. بلکه آنرا یکبار میسازیم و هربار خواستیم، همان کلاس ساخته شده قبلی را صدا میزنیم.

کد Singleton آنقدر ساده است که با دیدنش خنده تان میگیرد!


public class Singleton
{
   private static SMSsender instance = new SMSsender ();

   private Singleton() {}

   public static Singleton Instance
   {
       get{
         return instance;
       }
   }
}

همانطوری که میبینید کلاسی به نام Singleton داریم که در آن یک متغیر استاتیک و Private به نام instance و از نوع کلاس SMSSender ساخته ایم. همینطور یک Property از نوع Readonly داریم که همیشه و همیشه همین instance را به ما بر میگرداند. بنابراین هرباری که از کلاس singleton یک نمونه بسازیم و property آن یعنی Instance را فراخوانی کنیم، همان فیلد instance قبلی را به ما برمیگرداند.

ساده بود نه؟ از Singleton معمولا زمانی استفاده میکنیم که بخواهیم از خدمات یک کلاس استفاده کنیم.

مراقب باشید!!!

در استفاده از Singleton Pattern در وب بسیار مراقب باشید. متغیرهای استاتیک در وب، باید بسیار بسیار بادقت استفاده شوند. چون بین Request ها مشترکند.

 

اگر این مقاله را دوست داشتید، شاید از مقاله Facade Pattern هم خوشتان بیاید.

اگر مایلید آموزش ها را به صورت ویدیویی ببینید، از طریق فرم زیر به من اطلاع بدهید.




کلمات کلیدی :

نظر بدهید

یک دیدگاه برای “ِDesign Patterns – درس چهارم – Singleton عزیز

  • آرمان گفته
    ۲۵ خرداد ۹۷

    همیشه فیلم بهتره