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) و تعامل اشیاء.
نظرات