Factory Pattern

android factory pattern الگوی طراحی فکتوری در جاوا و اندروید آموزش فکتوری کارخونه شی گرا برنامه نویسی

سطح آموزش: #متوسط

Factory pattern یکی از پرکاربردترین الگوهای طراحی در برنامه‌نویسی شی‌ء‌گراست. فرض کنید یک کارخونه داریم که وظیفه تولید objectهای مختلف رو داره. و ما فقط ویژگی‌هایی از شی مورد نظرمون رو بهش میگیم و کارخونه شی رو به ما تحویل میده.

هدف

دوتا هدف مهم داریم.

۱- بدون اینکه درگیر پیچیدگی انواع شی بشیم بتونیم شی مورد نظرمون رو (از کارخونه) تحویل بگیریم.

۲- اشیا جدید (که بعدا به برنامه اضافه می‌کنیم) رو بتونیم از طریق یک اینترفیس قدیمی (که قبلا تولید کردیم) دریافت کنیم.

فرض کنید یک کارخونه نوشیدنی داریم. ما با گفتن اسم محصول(ویژگی) میتونیم محصول (object) رو تحویل بگیریم. در عین حال با اضافه شدن یک محصول جدید ما باز به سراغ کارخونه قدیمی میریم و فقط اسم محصول جدید رو می‌گیم و اون رو تحویل می‌گیریم.

چرا به Factory Pattern نیاز داریم؟

یک دلیل ساده‌تر شدن کد زدن هست. تعداد خطوط کدی که برای گرفتن یک object از factory نوشته میشه کمتر از تولید object هست. ما کدهای تولید رو فقط یکبار داخل factory نوشتیم.

اما دلیل مهمتر اینه که وقتی از factory استفاده میکنیم دیگه نیاز نداریم برای اضافه کردن اشیا جدید داخل فریمورک (که کدهای سمت کاربر زده میشه) حتی یک خط کد اضافی بنویسیم. فقط میریم سراغ کارخونه و شی رو درخواست میدیم. منطق این شی جدید رو در factory خواهیم زد.

برای اضافه کردن یک خاصیت به تمام اشیا از یک کلاس هم کافیه کدهای factory رو تغییر بدیم و نیازی به تغییر کدهای فریمورک نیست.

نتیجه‌گیری

استفاده از Factory Pattern در برنامه‌نویسی اندروید یک اصل نیست. من خودم تا حالا موردی پیش نیومده که بخوام از factory pattern استفاده کنم. وقتی ما از این دیزاین پترن استفاده می‌کنیم که تعداد زیادی شی از یک ریشه (همه از یک کلاس مادر ارث‌بری کنن) داشته باشیم. مثلا وقتی تعداد خیلی زیادی view از جنس‌های مختلف داریم که در زمان اجرای برنامه و توسط کد جاوا نیاز به نمونه‌سازی ازشون داریم. در مواقع عادی factory pattern بیشتر به برنامه پیچیدگی میده ضمن اینکه فوایدش چندان شامل حال ما نمیشه.

اما دلیل اینکه راجع بهش صحبت کردیم اینه که با استفاده از مفهومی که اینجا یاد گرفتیم و ترکیب اون با observer pattern میتونیم یک الگوی پیشرفته‌تر داشته باشیم که برای درک RxAndroid و RxJava که در آینده خواهیم آموخت لازم هستن.

اگر علاقه به دیدن نمونه کد و بیشتر یادگرفتن دارید به این لینک سر بزنید.

یک دیدگاه برای “Factory Pattern

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *