- +5
- 08 листопада 2009, 16:53
- kunik
Недавно доводилось працювати з людьми які на дух не переносять наслідування. Всюди де можна і не можна використовували композицію.
Щоб зберегти тверезість розуму вирішив спробувати перелічити коли і що треба використовувати.
Наслідування
1) коли є is-a залежність
2) коли is-a є постійною в часі, тобто стан об'єкту моделюється не класами, а властивостями класу
Композиція
1) коли можливо has-a pалежність
2) коли потрібно перевикористати код
3) коли необхідно поліморфізм, але немає is-a зв'язку — краще використати інтерфейси
4) коли супер клас є недоступним до модифікації (чи може краще зразу адаптер?)
Щодо базових класів — то їх краще зразу оголошувати як abstract щоб потім не було мороки, коли коду багато.
Якісь ще є думки на цю тему?
- +4
- 22 липня 2009, 16:58
- zenyk