دیزاین پترن State

دیزاین پترن State

Behavioral DESIGN PATTERNS

یکی از زیرشاخه های الگوهای طراحی، Behavioral Design Patterns است. تمرکز و وظیفه اصلی این دیزاین پترن ها تعامل اشیاء و جداسازی وظایف آن ها  از یکدیگر است.

State Design Pattern

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

الگوی طراحی State به یک شی اجازه می دهد تا رفتار خود را هنگام تغییر وضعیت داخلی تغییر دهد. به نظر می رسد که شی کلاس خود را تغییر می دهد.

سختش نکنیم! هروقت میخوایم رفتار کلاس رو وقتی که مثلا یک فیلد را مقدارش را عوض میکنیم، تغییر بدهیم از این دیزاین پترن استفاده میکنیم.

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

پیاده سازی دیزاین پترن State

فرض کنید اینترفیس IState را به شکل زیر داریم.

interface IState
    {
        void DoAction();
    }

کلاس TVContext را هم به شکلی که هم IState را پیاده سازی کرده باشد و هم یک IState به عنوان فیلد دریافت میکند پیاده سازی کردیم.

class TVContext : IState
    {
        IState state;
        
        public void SetState(IState state)
        {
            this.state = state;
        }

        public void DoAction()
        {
            state.DoAction();
        }
    }

حالا دو کلاس TVOnState و TVOffState را برای روشن و خاموش کردن تلویزیون در نظر میگیریم. این دو کلاس IState را پیاده سازی کرده اند و وضعیت روشن یا خاموش بودن تلویزیون را مشخص میکنند.

class TVOnState : IState
    {
        public void DoAction()
        {
            Console.WriteLine("TV turned on");
        }
    }
class TVOnState : IState
    {
        public void DoAction()
        {
            Console.WriteLine("TV turned on");
        }
    }

حال به سراغ متد main میرویم.

static void Main(string[] args)
        {
            try
            {
                TVContext TV = new TVContext();
                TV.SetState(new TVOffState());
                TV.DoAction();
                TV.SetState(new TVOnState());
                TV.DoAction();
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
            Console.ReadLine();
        }

برای آموزش رایگان در مورد انواع دیزاین پترن ها و معماری های نرم افزار می توانید به این آموزش مراجعه نمایید:

معماری نرم افزار مهم ترین پترن های معماری نرم افزار

دیزاین پترن یا الگوی طراحی چیست؟

دیزاین پترن  در حقیقت راه حل مسائل طراحی نرم افزار هستند که بارها و بارها در دنیای توسعه نرم افزار تکرار میشوند. الگوهایی از طراحی قابل استفاده مجدد (reusable) و تعامل اشیاء.

پرینت صفحه

هولوسن

با من یاد بگیر

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

۲ نظر
  • عباس
    ارسال در : ۱۲:۲۱h, ۳۱ شهریور پاسخ
    (5/5)

    خیییییییلی ساده، مفید و کاربردی.

    • هولوسن
      ارسال در : ۱۳:۴۸h, ۱۰ مهر پاسخ

      عباس عزیز سلام و عرض ادب
      امیدوار هستیم که خوب، سرحال و سرشار از حس مثبت باشید.

      از صمیم قلب شاکر هستیم که رضایت خاطر شما را فراهم کرده‌ایم. شکر خدا که راضی هستید، تلاش داریم که با ارائه محتوای مورد نظر شما عزیزان، کیفیت مطالب فارسی را افزایش دهیم.

      با تقدیم احترام، هولوسن

**پرسش و پاسخ** سوال خود مطرح کنید.
امتیاز شما*