برنامه نویسی

🏠 #basit-fabrika (کارخانه ساده)

سناریوی دنیای واقعی

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

به سادگی:

کارخانه ساده شما را از منطق و تلاش شما نجات می دهد.
این شما را ، میل (یا مشتری) از توضیحات نحوه ایجاد شیء نجات می دهد.
در برنامه نویسی مبتنی بر شی (من بعد از آن با OOP تماس می گیرم) ، که یک شی است کارخانه برای ایجاد اشیاء دیگر و گروه های شی استفاده می شود.
با C#، زبانی که ما از آن استفاده خواهیم کرد ، ایجاد شی با کلمه کلیدی جدید انجام می شود ، اما می توانید این ساختار را با استفاده از زبان خود اعمال کنید.

نمونه نرم افزاری

رابط و اجرای رابط و اجرای درب ما وجود دارد.

public interface Door
{

}

public class WoodenDoor : Door
{
    private float _width { get;  }
    private float _height { get; set; }
    public WoodenDoor(float width,float height)
    {
        _width = width;
        _height = height;
    }
    public KeyValuePair<float, float> GetWidthAndHeight()
    {
        return new KeyValuePair<float, float>(_width,_height);
    }
}

سپس بیایید کارخانه درب خود را ایجاد کنیم (این کلاس در مثال ما):

public class DoorFactory
{
    public static Door MakeDoor(float width,float height)
    {
        return new WoodenDoor(width, height);
    }
}

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

// 75f(genislik)x200(yuksekliğinde) bir kapı yarattık.
var door = DoorFactory.MakeDoor(75f,200f);

چه زمانی باید از آن استفاده شود؟

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

با الهام از kamranahmedse ، طراحی-الگوهای برای انسان

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا