سعید صفایی | SAEED SAFAEE

آشنایی با الگوهای طراحی (یا همان دیزاین پترن ها)در زبان سی شارپ

سعید صفایی دیدگاه
آشنایی با الگوهای طراحی (یا همان دیزاین پترن ها)در زبان  سی شارپ

آشنایی با الگوهای طراحی (یا همان دیزاین پترن ها)در زبان  سی شارپ


تعریف

دیزاین‌پترن راه حلی برای صورت مساله‌ای تکراری در تولید نرم‌افزار هستند که به کمک مفاهیم شی‌گرایی می‌توان به شکل بهینه مسائل نرم‌افزاری را با سرعت بیشتر حل کرد.


به طور کلی سه دسته دیزاین پترن داریم:

Creational Design Patterns(الگوهای چگونگی ساخت یک شیء یا چند شیء به هم مرتبط )
Structural Design Patterns(رابطه بین اشیاء و ساختار آن‌ها)
Behavioral Design Patterns(الگوهای ارتباطی مشترک بین اشیاء)




(Factory Design Pattern)دیزاین پترن فکتوری

 همانگونه که از نام آن پیداست (پترن کارخانه)، به جای اینکه خودمان شی را ایجاد کنیم به کارخانه میگوییم که چه چیزی میخواهیم و او شی را ایجاد کندمت

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


مثال عملی:

public interface ICar
{
       Task StartCar();
}

class Benz : ICar
{
      public async Task StartCar()
      {
           Console.WriteLine("Start Benz");
      }
}

class BMW : ICar
{
       public async Task StartCar()
       {
           Console.WriteLine("Start BMW");
       }
}


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

public class CarFactory //نمونه کاملا ساده
{
       public ICar GetCar(string type)
       {
           ICar retVal = null;

           if(type == "B")
           {
               retVal = new Benz();
           }
           else if (type == "BM")
           {
               retVal = new BMW();
           }

           return retVal;
       }
}

حال در زمان استقاده میتوانیم به کلاس کارخانه بگوییم که چه شئ را تولید کند

با این کار تعداد کد ها کمتر و نمونه سازی بهینه شده است


static void Main(string[] args)
{
        CarFactory factory = new CarFactory();
         var car = factory.GetCar("B");   // benz class 

          car.StartCar();  
}


دیدگاه خود را بگذارید