در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش اصول SOLID در برنامه نویسی قسمت 2 : Open Closed

بحث قواعد SOLID رو با مبحث Open Closed Principle ادامه می دهیم. با یک مثال شروع می کنیم، فرض کنید که یک کلاس برای محصولات داریم:

public class Product
{
    public string Name { get; set; }
    public string Price { get; set; }
}

حال محصول را به سه نوع مختلف تقسیم بندی می کنیم که بر اساس نوع های متفاوت، درصدی تخفیف برای محصول حساب می شود:

public class Product
{
    public int ProductType { get; set; }

    public string Name { get; set; }
    public int Price { get; set; }

    public double GetDiscount()
    {
        if (ProductType == 1)
        {
            return (Price/100)*5;
        }
        if (ProductType == 2)
        {
            return (Price/100)*10;
        }
        if (ProductType == 3)
        {
            return (Price/100)*15;
        }
        return 0;
    }
}

حال فرض کنید که بخواهیم نوع چهارمی از تخفف را برای کلاس Product در نظر بگیریم، می بایست یک دستور if دیگر به متد GetDiscount اضافه کنیم و با هر بار تغییر، کلاس Product تغییر می کند. در اینجا ما باید قاعده Open Closed را اعمال کنیم، در حقیقت این قاعده به ما می گوید که یک کلاس برای تغییرات باید بسته باشد، یعنی ما اجازه تغییر کلاس برای افزودن امکانات جدید را نداریم، اما راه برای ایجاد Extension یا افزونه جدیدی برای کلاس باز است. در مثال بالا و بر اساس قاعده Open Closed، ما یک کلاس پایه تعریف می کنیم و به ازای هر نوع محصول، یک کلاس فرزند برای آن ایجاد می کنیم:

public class Product
{
    public string Name { get; set; }
    public int Price { get; set; }

    public virtual double GetDiscount()
    {
        return 0;
    }
}

public class ProductType1 : Product
{
    public override double GetDiscount()
    {
        return (Price/100)*10;
    }
}

public class ProductType2 : Product
{
    public override double GetDiscount()
    {
        return (Price/100)*15;
    }
}

حال، در صورت اضافه شدن نوع محصول یا نوع جدیدی از تخفیف، به جای تغییر کلاس Product، به راحتی یک کلاس فرزند ایجاد کرده و متد GetDiscount را در آن Override می کنیم. در نکته بعدی در مورد قاعده Liskov Substitution صحبت خواهیم کرد. ITPRO باشید

نویسنده: حسین احمدی
منبع: انجمن تخصصی فناوری اطلاعات ایران
#نکات_برنامه_نویسی #تکنیک_های_برنامه_نویسی_حرفه_ای #قواعد_solid_در_برنامه_نویسی #قاعده_open_closed_در_برنامه_نویسی
عنوان
1 آموزش اصول SOLID در برنامه نویسی قسمت 1 : مقدمه و SRP رایگان
2 آموزش اصول SOLID در برنامه نویسی قسمت 2 : Open Closed رایگان
3 آموزش اصول SOLID در برنامه نویسی قسمت 3 : Liskov Substitute رایگان
4 آموزش اصول SOLID در برنامه نویسی قسمت 4: Interface Segregate رایگان
5 آموزش اصول SOLID در برنامه نویسی قسمت 5 : Dependency Inverse رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....