دیزاین پترن الگوی کارخانه - Factory method
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 2 دقیقه

دیزاین پترن الگوی کارخانه - Factory method

دیزاین پترن الگوی کارخانه یکی دیگر از دیزاین پترن های دسته ی ایجادی در اصول مهندسی نرم افزار می باشد.همان طور که می دانید دسته ی ایجادی به دو الگوی اصلی تقسیم بندی می شوند که عبارتند از:

  1. الگو های class-creation
  2. الگوهای 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));

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
4.33 از 3 رای

/@roocketir

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

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید