حسین حسین پور
6 سال پیش توسط حسین حسین پور مطرح شد
1 پاسخ

composition به علاوه interface به جای inheritance

سلام دوستان.
من جدیدا به این نتیجه رسیدم که استفاده از inheritance در طراحی الگو های کد هامون خیلی مشکل سازه . مثلا فرض کنید ما به یک متد در کلاس مجاور نیاز داریم که در کلاس ما و پدرانش هم نیست در نتیجه نیازه که یک instance جدید از کلاس مجاور بسازیم که به قول خارجیا performance killer هستش یعنی قاتل عملکرد کد به دلیل مصرف بیهوده memory.
یه مثلی هم میزنن که اگر ما بخوایم برای دسترسی به هر متدی یک نمونه از کلاس مجاور بسازیم مثل اینه که ما یک موز میخوایم بریم یک گوریل رو برداریم که دستش یه موزه :)
راه دوم هم اینه که متد رو در کلاس اول به صورت static تعریف کنیم که درد سر های خودش رو داره و معلوم نمیکنه واقعا که ما اصلا بخوایم از این متد جاهای دیگه استفاده کنیم یا نه.
راه حل سوم اینه که بیایم متد رو دوباره نویسی کنیم که قطعا اگر پروژه بزرگ باشه ما با کلی کد تکراری مواجه میشیم که maintain کردنشون کلی دردسره.
راه حل اصلی اینه که ما به کل بیایم inheritance رو بذاریم کنار و از composition استفاده کنیم. که چند تا کانال معروف در youtube در زمینه برنامه نویسی رو که بررسی میکردم این پیشنهاد رو داده بودند که یکیشون میگفت در php بهتره که از ترکیب composition + interface استفاده کنیم که توضیحات بیشتری نداد و منم راستش منبع مناسبی پیدا نکردم که این الگوی طراحی رو ببینم چطوره.
خواستم ببینم دوستان منبعی در این رابطه سراغ دارند؟


ثبت پرسش جدید
مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش مطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام