تبلیغات
مرجع عملی و کاربردی زبان سی شارپ ، تصاویر دیدنی ، دانلود نرم افزار های گوناگون - اصول اولیه OOP و دات نت فریمورک

اصول اولیه OOP و دات نت فریمورک

نویسنده :مرتضی عالمین
تاریخ:شنبه 9 خرداد 1388-12:03 ب.ظ

 

2-الگوهای طراحی (Design Patterns) :

 

آشنایی با الگوهای طراحی : Singleton Pattern


Singleton Pattern



هدف : میخواهیم تضمین کنیم که از یک کلاس تنها بتوان یک آبجکت (حالت ساده و متعارف سینگلتون) ایجاد کرد و همه ی درخواستها نیز تنها به همان یک آبجکت هدایت شوند و نیز بتوان یک دسترسی عمومی به آن داشت.

اولین قدم : سازنده ی کلاس را private میکنیم
چرا private ؟ - پاسخ : تا هیچکسی نتواند از کلاس آبجکت بسازد.

دومین قدم : یک فیلد استاتیک از نوع خود کلاس تعریف میکنیم.
چرا استاتیک : چون قرار است در یک متود استاتیک از آن استفاده کنیم.
چرا private : چون قرار است امکان دسترسی به این آبجکت از طریق یک متود یا پراپرتی صورت گیرد و دسترسی مستقیم مطلوب نیست.

سومین قدم : ایجاد یک پراپرتی یا متود public و استاتیک که فیلد را برمیگرداند.
چرا public ؟ چون میخواهیم از همه جا قابل دسترسی باشد.
چرا استاتیک ؟ چون آبجکتی از کلاس ندارم و ناچارا باید دسترسی به این متود یا پراپرتی در سطح کلاس باشد.

پس تا اینجا داریم :

کد:

public sealed class Singleton
{
    // Private Constructor
    Singleton() { }
    // Private object instantiated with private constructor
    static readonly Singleton instance = new Singleton();
    // Public static property to get the object
    public static Singleton UniqueInstance
    {
        get { return instance; }
    }
}

معمولا بهتر است این پیاده سازی بصورت lazy instantiation باشد (یعنی تا قبل از اولین invoking آبجکت مقداردهی اولیه نشود) :

کد:

public class Singleton
{
    // Private constructor
    Singleton() { }
    // Nested class for lazy instantiation
    class SingletonCreator
    {
        static SingletonCreator() { }
        // Private object instantiated with private constructor
        internal static readonly
        Singleton uniqueInstance = new Singleton();
    }
    // Public static property to get the object
    public static Singleton UniqueInstance
    {
        get { return SingletonCreator.uniqueInstance; }
    }
}

این الگو به شدت در طراحیهای مختلف و الگوهای دیگر (مانند : Abstract Factory, Façade , ...) مورد استفاده دارد.

____________________________
کدها از کتاب : http://www.oreilly.com/catalog/9780596527730




داغ کن - کلوب دات کام
نظرات() 
What causes pain in the Achilles tendon?
شنبه 1 مهر 1396 02:16 ب.ظ
Fantastic site you have here but I was wondering if
you knew of any user discussion forums that cover the same topics talked about
here? I'd really like to be a part of online community where I can get comments from other experienced people that share the same interest.
If you have any recommendations, please let me know.
Thanks a lot!
Why does it hurt right above my heel?
جمعه 17 شهریور 1396 03:53 ب.ظ
Thank you a bunch for sharing this with all of us you
actually recognize what you're talking approximately!
Bookmarked. Please additionally discuss with my website =).

We could have a hyperlink trade contract between us
What is limb lengthening surgery?
پنجشنبه 16 شهریور 1396 06:58 ق.ظ
Fantastic beat ! I would like to apprentice while you amend your web
site, how could i subscribe for a blog site?

The account aided me a acceptable deal. I had been a little bit acquainted of this your broadcast
offered bright clear idea
Foot Issues
سه شنبه 17 مرداد 1396 01:34 ق.ظ
My brother recommended I might like this website.
He was entirely right. This post truly made my day.
You cann't imagine just how much time I had spent for this info!
Thanks!
How can you heal an Achilles tendonitis fast?
یکشنبه 15 مرداد 1396 12:35 ق.ظ
constantly i used to read smaller articles or reviews that also
clear their motive, and that is also happening with this paragraph which I
am reading at this place.
foot pain on top of foot
یکشنبه 11 تیر 1396 02:02 ب.ظ
Loving the info on this site, you have done great
job on the posts.
manicure
پنجشنبه 17 فروردین 1396 12:57 ق.ظ
This is the right web site for anyone who hopes to find out about this topic.
You know a whole lot its almost hard to argue with you (not
that I actually will need to…HaHa). You certainly put a
fresh spin on a subject that has been discussed for
ages. Wonderful stuff, just great!
سفیر ادز
شنبه 9 خرداد 1388 01:54 ب.ظ
با سلام خدمت شما دوست عزیز
کسب در آمد از وبلاگ و وبسایتتان
چنانچه دارای سایت یا وبلاگ پربازدیدی هستید می توانید با عضویت در سیستم کلیکی سفیر ادز اقدام به نمایش تبلیغات نمایید و به ازای هر کلیک بازدیدکنندگان برروی تبلیغات تا سقف 800 ریال بعنوان پورسانت دریافت نمایید در ضمن جایژه ویزه ثبت نام مبلغ 100000 ریال بن خرید فیلم از سایت سفیر شاپ می باشد که شما می توانید به میزان 100000 ریال از فروشگاه سفیر شاپ هر فیلمی و سریالی که درخواست داشتید انتخاب نموده تا در اولین واریزی پورسانتی که شما دارید برای شما ارسال شود
پرداخت کلیه وجوه و پورسانتها در سیستم تبلیغاتی سفیر شاپ توسط شرکت نگاه پارسیان تضمین شده می باشد در ضمن سیستم ما بر خلاف دیگر سیستم ها که پورسانت بالای در نظر گرفته اند و در موقع واریزی ها اقدام به کلاه برداری می کنند از پورسانت واقعی و واریزی های به موقع و دور از تقلب می باشد
در نتیجه شما می توانید به آسانی و بدون هیچ سرمایه وکاری پولدار شوید
مزیت سیستم تبلیغاتی ما جایزه ویژه آن و بنر های زیبا و با کلیک خور بالا می باشد بهتر است یک بار امتحان کنید
سفیر ادز
http://www.safirads.com

برای ثبت نام از این آدرس وارد شوید
http://www.safirads.com/page-customer_signup.html

سفیر شاپ
از اینجا می توانید سفارش محصول دهید
http://www.safirshop.com/

سایت بزرگ عکس کره ای
اینهم آدرس یکی از تبلیغ کننده های ما
www.koree.ir
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر




Admin Logo
themebox Logo