دیزاین پترن الگوی کارخانه یکی دیگر از دیزاین پترن های دسته ی ایجادی در اصول مهندسی نرم افزار می باشد.همان طور که می دانید دسته ی ایجادی به دو الگوی اصلی تقسیم بندی می شوند که عبارتند از:
- الگو های class-creation
- الگوهای object-creational
الگو هایclass-creation سعی در ارث بری می کنند بر روی فرآیند نمونه سازی تأثیر گذار می باشند.
الگو هایobject-creation از نمایندگان موجود در کلاس های خود برای انجام و به سرانجام رساندن کارشان استفاده می کنند.
در برنامه نویسی شی گرا ، الگوی روش کارخانه یک الگوی خلاقانه است که از روش کارخانه برای حل مسئله ایجاد اشیاء بدون نیاز به تعیین دقیق کلاس شئ که ایجاد می شود، استفاده می شود.
الگوی متد کارخانه یکی از الگوهای طراحی برنامهنویسی شئگرا برای پیادهسازی مفهوم اصول کار کارخانهها در برنامه نویسی است که به لطف خاصیت شئ گرایی مورد استفاده قرار می گیرد. مانند سایر الگوهای دسته ی ایجادی، دیزاین پترن کارخانه با ایجاد اشیاء (محصولات) بدون مشخصکردن کلاس اشیاء خاصی که قرار است ساخته شوند ایجاد شده است.
اساس الگوی متد کارخانه را می شود این طور بیان کرد که
تعریف یک رابط برای ایجاد اشیاء که اجازه میدهد اشیایی که آن رابط را پیادهسازی میکنند در رابطه با اینکه کدام کلاس باید ایجاد شود تصمیم بگیرند. متد الگوی کارخانه اجازه میدهد که یک کلاس رابطه ی ایجاد اشیاء را به زیرکلاسها واگذار نماید.
به طور واضح تر روش کارخانه به کلاس اجازه می دهد تا نمونه سازی ها را به زیر کلاس ها تحویل دهد.
به طور کلی دیزاین پترن کارخانه یک رابط جهت ساخت اشیاء تعریف کرده و اجازه میدهد تا زیر کلاسها در مورد اینکه چه شیء را نمونه سازی کنند تصمیم بگیرند. در واقع این الگو اجازه میدهد تا نمونه سازی را به زیر کلاسها محول شود.
اساساً کاربرد الگوی کارخانه برای شرایطی است که چندین کلاس با ریشه مشترک داریم (یعنی چندین کلاس یک کلاس فوقانی را پیاده سازی می کنند) و غالب استفاده نیز با شی سازی (نمونه سازی) از کلاس فوقانی صورت می گیرد.
interface DbTable
{
public function create($array);
}
class MySqlTable implements DbTable
{
public function create($array)
{
// add a record to table 1 on mysql database
}
}
class OracleTable implements DbTable
{
public function create($array)
{
// add a record to table 2 on oracle database
}
}
class TableFactory
{
private $dbTypeConfig = 'mysql';
public function createTable()
{
if ($this->dbTypeConfig == 'mysql') {
return new MySqlTable();
} elseif ($this->dbTypeConfig == 'oracle') {
return new OracleTable();
}
return null;
}
}
$factory = new TableFactory();
$table = $factory->createTable();
$table->create(array(1));
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید