لطفا صبر کنید...
دیزاین پترن Prototype




Creational Design Patterns

یکی از زیرشاخه های الگوهای طراحی، Creational Design Patterns است. این الگو راهی جهت ساخت و ایجاد اشیاء (object) از کلاس ها را ارائه میدهد. ساخت یک شیء با استفاده از new کردن آن کلاس در اصطلاح hard code کردن راه حل خوبی نیست و بهتر است از الگوهای طراحی Creational استفاده کرد.

Prototype Design Pattern

این پترن یکی از زیرشاخه های الگوهای طراحی از نوع Creational است.

از دیزاین پترن prototype زمانی استفاده میشود که بخواهیم ساخت یک شیء با مقادیر پیشفرض را ساده کنیم یا بخواهیم از یک شیء با همان مقادیری که یک بار تنظیم شده مجددا شیئی بسازیم.

نحوه کارکرد این دیزاین پترن prototype به این صورت است که از شیء ایچاد شده یک clone گرفته میشود.

میزان استفاده :  متوسط

استفاده از دیزاین پترن prototype موجب کم شدن ارث بری ها شده و در زمانی که پیچیدگی ساخت شیء وجود دارد، آن را میتواند پنهان کند.

فرض کنید یک کلاس config داریم که قرار هست از آن یک clone داشته باشیم. نام این کلاس را AppConfig میگذاریم.

internal class AppConfig
{
    public Guid appId;
    public string appName;
    public AppConfig()
    {
        appId = Guid.NewGuid();
        appName = "Prototype Design Pattern";
    }
    public AppConfig(Guid id, string name)
    {
        appId = id;
        appName = name;
    }
    public AppConfig Clone()
    {
        return new AppConfig(appId, appName);
    }
}

در این کلاس (که صرفا یک نمونه ساد شده است)، یک constructor وجود دارد که مقادیر مورد نیاز را به عنوان پارامتر دریافت میکند. همچنین یک متد جهت clone کردن وجود دارد که یک شیء جدید با همان مقادیری که در کلاس تعریف شده ایجاد و باز میگرداند.

static void Main(string[] args)
{
    try
    {
        AppConfig appConfig = new AppConfig();
        AppConfig mainConfig = appConfig.Clone();
        ShowMessage(appConfig.appName);
        ShowMessage(mainConfig.appName);
    }
    catch (Exception ex)
    {
        ShowError(ex.Message);
    }
    Console.ReadLine();
}

در متد main برنامه یک شیء جدید از AppConfig ایجاد میکنیم. سپس شیء بعدی را با نام mainConfig میتوانیم از طریق Clone کردن شیء قبلی با همان اطلاعات بسازیم.

هولوسن

با من یاد بگیر

آموزش های بیشتر در وبسایت هولوسن : https://holosen.net

نظرات
5.0
(0 نظر)
5
1
4
0
3
0
2
0
1
0
نظرات
**پرسش و پاسخ** سوال خود را مطرح کنید.
در کمتر از 10 دقیقه پاسخگوی شما هستیم

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *

امتیاز:
Captcha Image