سلام وقت بخیر
در مورد دیزاین پترنها چند تا سوال داشتم :
۱ - میخواستم بدونم دقیقا تفاوت بین پولی مورفیسم ( چند ریختی ) با دیزاین پترن استراتژی توی چیه ؟ در کل دوتاشون هم مفهومش یکیه و یه مشکلی رو برای ما حل میکنند البته شاید یکم توی پیاده سازیشون تفاوت باشه اما در کل یکی هستند و اینکه وقتی پولی مورفیسم بود چرا استراتژی به وجود اومد ؟ اصلا استراتژی چه مزیتی نسبت به پولی مورفیسم داره ؟
۲ - اگه میشه یه توضیح کوتاهی در مورد دیزاین پترن Observer بدین و اینکه یه مثال real بخوایم از این دیزاین پترن بزنیم چی میتونه باشه ؟؟ شما خودتون شده توی پروژه ای از این استفاده کنید ؟ اگر شده توی چه بخشی و برای چه کاری بود ؟ فریمورکهای معروف نظیر لاراول از همچین دیزاین پترنی استفاده کردند ؟
۳ - توی پیاده سازی Observer بهتره یه قرارداد کلی داشته باشیم توی پروژمون و بخش هایی که از این دیزاین پترن استفاده میکنند از اون پیروی کنند یا نه برای هر بخش جداگانه قرارداد بنویسیم یا اصلا بدون قرارداد فقط پیاده سازیش کنیم ؟
در مورد ساختار پروژهها هم چند تا سوال داشتم :
۱ - راستیتش نمفهمم دقیقا هر دایرکتوری شامل چه بخش هایی باید باشه برای مثال دقیقا چیا باید توی دایرکتوری Services ما قرار بگیره ؟ اصلا چه چیزی میتونه یه service به حساب بیاد ؟
یا مثلا توی دایرکتوری helper چیا باید قرار بگیره ؟
یا حتی مثلا دایرکتور utility دقیقا شامل چه مواردی میشه ؟
تفاوت این ۳ تا چیه ؟ از کجا تشخیص بدیم یه بخشی رو باید توی کدوم یکی از اینا قرار بدیم ؟
من سورس کدهای مختلف رو که میبینم مثلا یه جایی کلاس View توی سرویس قرار گرفته بود یه جایی helper قرار گرفته بود
۲ - توی بخشهای مختلف پروژه ما شاید کلی قرارداد ( اینترفیسها یا ابسترکت کلاسها ) داشته باشیم حالا بهتره توی هر بخشی که مینویسیم قراردادش همونجا باشه یا نه همشون مثلا توی یه دایرکتوری به نام Contracts قرار بگیره و از اونا فراخوانی و استفاده بشه
۳ - توی پروژههای شی گرایی وردپرسی مثلا میخوایم یکسری function تعریف کنیم و از اونا توی پروژمون استفاده کنیم روش درستش به چه شکله ؟؟ بیایم یه دایرکتوری به اسم functions بسازیم و فانکشن هامون داخل اون تعریف کنیم و مثلا توی init پلاگین یا قالب اونارو include کنیم ؟ یا نه در قالب متدهای کلاسها فانکشن هامونو قرار بدیم و به صورت استاتیک تعریف کنیم و استفاده کنیم ؟
معذرت میخوام اگر زیاد شد
باتشکر