سال ۱۹۹۴ کتاب معروف Gang of Four یه قانون طلایی رو تو طراحی نرمافزار مطرح کرد که میگفت همیشه ترکیب (Composition) رو به وراثت ترجیح بدید؛ قانونی که خیلی از ماها شاید بدون اینکه دلیل واقعی و عمیقش رو بدونیم فقط به عنوان یه Best Practice قدیمی تو پروژههامون رعایتش میکنیم. اما یکی از قشنگترین دلایل این الگو که خیلی کم بهش توجه میشه اینه که بهمون کمک میکنه کدهایی بنویسیم که خیلی راحتتر «دور ریخته» میشن. مثلا فرض کنید سرویس مدیریت سفارشات شما برای اطلاعرسانی به کاربر، از یه کلاس پایه به اسم SmsNotifier ارثبری کرده. چند سال میگذره و تیم تصمیم میگیره برای کاهش هزینهها به جای پیامک، فقط از Push Notification استفاده کنه. اتفاقی که میفته اینه که اون کدهای قدیمی پیامک تو کلاس پایه تبدیل میشن به یه کد مرده که جرات نمیکنید پاکشون کنید، چون دهها کلاس دیگه هم دارن از همون کلاس پایه ارث میبرن و میترسید سیستم جای دیگهای به هم بریزه. اما اگه از همون اول جای وراثت، از ترکیب استفاده کرده بودید و منطق نوتیفیکیشن رو تو یه اینترفیس مجزا مینوشتید و به سرویس اصلیتون تزریق میکردید، الان خیلی راحت میتونستید کلاس اساماس رو کلا بندازید تو سطل زباله و کلاس جدید رو جایگزینش کنید، بدون اینکه هیچ استرسی برای خراب شدن منطق اصلی پروژهتون داشته باشید.
https://www.youtube.com/watch?v=DIZTQxkOsy4
@codehalics | کدهالیک
Post #1124
816
- ❤ 8