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

ترجمه و تالیف : پشتیبانی راکت
تاریخ انتشار : 13 خرداد 98
خواندن در 1 دقیقه
دسته بندی ها : پی اچ پی

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

  1. الگو های class-creation
  2. الگوهای object-creational

الگو هایclass-creation  سعی در ارث بری می کنند بر روی فرآیند نمونه سازی تأثیر گذار می باشند.

الگو هایobject-creation  از نمایندگان موجود در کلاس های خود برای انجام و به سرانجام رساندن کارشان استفاده می کنند.

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

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

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

 اساس الگوی متد کارخانه را می شود این طور بیان کرد که

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

به طور واضح تر روش کارخانه به کلاس اجازه می دهد تا نمونه سازی ها را به زیر کلاس ها تحویل دهد.

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

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

اساساً کاربرد الگوی کارخانه برای شرایطی است که چندین کلاس با ریشه مشترک داریم (یعنی چندین کلاس یک کلاس فوقانی را پیاده سازی می کنند) و غالب استفاده نیز با شی سازی (نمونه سازی) از کلاس فوقانی صورت می گیرد. 

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));
گردآوری و تالیف پشتیبانی راکت
آفلاین
user-avatar

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

دیدگاه‌ها و پرسش‌ها

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