سلام
همان طور که همه میدونیم دیزاین پترن ها راه حل هایی هستند برای یکسری مشکلات رایج در شی گرایی
دیزاین پترن factory به سه شاخه simple factory , factory method , abstract factory تقسیم میشه که مشکل new کردن رو حل میکنه
دلیل وجود دو دیزاین پترن factory method , abstract factory وجود مشکلی هست که simple factory نمی تونه حلش کنه
دیزاین پترن simple factory چه مشکلی نمی تونه حل کنه که دیزاین پترن factory method برطرفش میکنه؟
سلام دوست عزیز ..
دیزاین پترن factory یا همون simple factory نسبت به ۲ روش دیگه به این صورت هستش که قوانین سادهتری داره ... به عنوان مثال هیچ قرارداد خاصی رو پیروی نمیکنه که مثلا اون کلاس رو محدود کنه که فقط میتونه یک تایپ آبجکت به خصوص رو بسازه ... داخل این پترن شما میتونید هر نوع آبجکتی که خواستید رو بسازید ... و چون هر نوع آبجکتی رو میتونه بسازه پس در واقع در مورد نیازمندیها و پیشنیازهای اون کلاسهایی که میسازه خیلی اطلاع دقیقی نداره .. چون یک سازنده عمومی هستش ... به عنوان مثال شما در factory method یک سازنده دارید که از یک نوع کلاس خاص برای شما نمونه میسازه و چون فقط از اون کلاس خاص داره برای شما نمونه میسازه پس کاملا میدونه که نیازمندیهای (Dependency) اون کلاس چی هست، پس در زمان نمونه سازی اون ها رو Inject میکنه ... ولی در simple factory به این صورت نیست و اگر کلاس شما نیاز به Dependency داشته باشه این دیزاین پترن کار خاصی نمیتونه بکنه.
موفق باشید.