سلام خدمت دوستان گلم
امروز شروع میکنیم به معرفی دیزاین پترن فکتوری (Factory Design Pattern) .
اول از همه بگم دیزاین پترن فکتوری (Factory Design Pattern) همانند دیزاین پترن Singleton و Multiton و … یک دیزاین پترن از نوع Creationa است زیرا به نحوه ساخت آبجکت ها به صورت runtime نظارت می نماید .
دیزاین پترن فکتوری (Factory Design Pattern) این امکان را به ما می دهد که در زمان اجرا (runtime) تصمیمی بگیریم از کدام کلاس باید آبجکت ساخته شود و آن آبجکت را برگرداند و وظیفه ساخت آین آبچکت ها بر عهده متد factory هست که داخل کلاس دیزاین پترن ما وجود دارد .
تکته مهم اینکه در دیزاین پترن فکتوری تابع سازنده نداریم و روند ساخت آبجکت ها بر عهده همان متد factory است . برای جا افتادن کاربر این دیزاین پترن یک مثال میزنم :
فرض کنید میخواهیم توسط یک کانکشن به یک Datasource وصل بشیم و نوع این کانکشن در زمان اجرا توسط کاربر به وسیله ی فرمی که براش قرار دادیم تعیین می شود . (مثلا از نوع xml باشد و یا sql و یا csv , ..) وقتی کاربر نوع مورد نظر خودش را به وسیله ی فرم انتخاب کرد باید یک آبجکت از کلاس مربوطه بسازیم و کانکشن را در اختیار کاربر قرار دهیم تا شروع به کار کند.پس خیلی راحت دیزاین پترن فکتوری به کمک ما می آید و این روند ساخت شی را به صورت runtime انجام می دهد .
به صورت کلی 3 نوع دیزاین پترن فکتوری وجود دارد :
Simple factories که یک زمانی به static factories معروف بود , سادترین نوع این دیزاین پترن می باشد . گرچه یک دیزاین پترن رسمی نیست ولی در پروژه هایی با مقیاس کوچک و متوسط کاربرد خود را دارد .
Simple factories ها کلاس هایی هستند که می توانند یک کلاس به خصوص را برگردانند (این کلاس ها به product معروف هستند .)
برای مشاهده کامل آموزش کلیک نمایید .