💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ gity ghasemi
using abstract factory or factory simple or factory method
جامعه مهندسی نرم افزار ایجاد شده در ۰۶ اسفند ۱۴۰۰

سلام و وقت بخیر

من این سه تا پترن رو یه مطالعه ای داشتم دو تا سوال برام پیش اومد.

۱- من یجایی سه نوع آپلودر دارم که علاوه بر اینکه یوآیشون متفاوته فانکشنالیتیهاشونم متفاوته. فانکشنهای مشترک هم بین این سه وجود داره. بخام مثال بزنم یه آپلودر دارم که توی تکست اریا قرار داره و نقش اتچمنت فایلو بر عهده داره یه آپلودر دیگه دارم که مالتی آپلودره و همه جور فایلی از عکس و فیلم و پی دیاف و ... رو آپلود می‌کنه و یکی هم فایل آپلودر ساده که فقط آپلود تصویره. تو هر سه فانکشن آپلود رو دارم. اما یسری عملیات باید تو مالتی آپلودر قبل از ارسال به سرور انجام بشه که تو بقیه نیس. همونطور که گفتم ظاهرم کاملا متفاوته. اینو باید از کدوم الگو برم؟ ابسترکت فکتوری مناسبتره یا فکتوری متد.؟

۲- سوال دومم اینه توی فلاتر من دیالوگی دارم که باید تو هر سه تا پلتفرم دسکتاپ و اندروید و ای او اس و وب ظاهر متفاوتی داشته باشن و ممکنه فانکشنهای متفاوتی که در آینده وجود د اشته باشه براشون. یه سمپلی خوندم اومده بود از فکتوری ساده استفاده کرده بود داخل کریتورش یه شرط دستی گذاشتم بود اگر پلتفرم موبایل پاس داده شده بود بهش فلان کلاسو نیو کنه و ریترن کنه و اگر دسکتاپ بود مثلا کلا به جا دیالوگ اسنک بار نشون بده. اما این همونطور که گفتید اصل سینگل ریسپانسیو بودن رو بخاطر اینکه اگر پلتفرم دیگه اضاف شد نیاز به تغییره به وجود میاره. اینجا میتونم از ابتسرکت فکتوری برم؟ چون چند تا پلتفرمه

سلام خدمت شما. برای سوال اول استفاده به نظرم می‌تونید یک آپلودر پایه داشته باشید که کارش آپلود کردن هر فایلی می‌تونه باشه. بعد برای آپلودرهای متفاوت یک کلاس ایجاد کنید که لاجیک‌های هر کدوم داخل خودشون بررسی بشن و در نهایت از اون کلاس پایه برای آپلود فایلشون استفاده کنن. چون نوع داده‌ها کمی متفاوت هست شاید نشه از فکتوری‌ها استفاده کرد.

در مورد سوال دوم به نظرم بهترین گزینه abstract factory میتونه باشه.

بهترین پاسخ
کیوان علی محمدی ۰۶ اسفند ۱۴۰۰، ۱۲:۵۲