آموزش حرفه ای php

آموزش کامل و حرفه ای php به زبان فارسی

آموزش حرفه ای php

آموزش کامل و حرفه ای php به زبان فارسی

آموزش دیزاین پترن Factory Design Pattern

سلام خدمت دوستان گلم

امروز شروع میکنیم به معرفی دیزاین پترن فکتوری (Factory Design Pattern) .

اول از همه بگم دیزاین پترن فکتوری (Factory Design Pattern) همانند دیزاین پترن Singleton و Multiton و … یک دیزاین پترن از نوع Creationa است زیرا به نحوه ساخت آبجکت ها به صورت runtime نظارت می نماید .

دیزاین پترن فکتوری (Factory Design Pattern)   این امکان را به ما می دهد که در زمان اجرا (runtime) تصمیمی بگیریم از کدام کلاس باید آبجکت ساخته شود و آن آبجکت را برگرداند  و وظیفه ساخت آین آبچکت ها بر عهده متد factory هست که داخل کلاس دیزاین پترن ما وجود دارد .

تکته مهم اینکه در دیزاین پترن فکتوری تابع سازنده نداریم و روند ساخت آبجکت ها بر عهده همان متد factory است . برای جا افتادن کاربر این دیزاین پترن یک مثال میزنم :

فرض کنید میخواهیم توسط یک کانکشن  به یک Datasource وصل بشیم  و نوع این کانکشن در زمان اجرا توسط کاربر به وسیله ی فرمی که براش قرار دادیم تعیین می شود . (مثلا از نوع xml باشد و یا sql و یا csv , ..) وقتی کاربر نوع مورد نظر خودش را به وسیله ی فرم انتخاب کرد باید یک آبجکت از کلاس مربوطه بسازیم و کانکشن را در اختیار کاربر قرار دهیم تا شروع به کار کند.پس خیلی راحت دیزاین پترن فکتوری به کمک ما می آید و این روند ساخت شی را به صورت runtime انجام می دهد .

به صورت کلی 3 نوع  دیزاین پترن فکتوری وجود دارد :

  1. Simple factory (مانند دو مورد بعدی رسمی نیست)
  2. Factory method
  3. Abstract factory

دیزاین پترن Simple factory :

Simple factories که یک زمانی به static factories معروف بود , سادترین نوع این دیزاین پترن می باشد . گرچه یک دیزاین پترن رسمی نیست ولی در پروژه هایی با مقیاس کوچک و متوسط کاربرد خود را دارد .

Simple factories ها کلاس هایی هستند که می توانند یک کلاس به خصوص را برگردانند (این کلاس ها به product معروف هستند .)

قانون های دیزاین پترن Simple factory : 

  • کلاس های factory باید یک متد استاتیک داشته باشند .
  • متدهای factory باید یک نمونه از کلاس را برگردانند.
  • در یک لحظه باید 1 آبجکت ایجاد و برگردانده شود .

برای مشاهده کامل آموزش کلیک نمایید . 

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.