Композиция — это когда один объект предоставляет другому свою функциональность частично или полностью. Верно? Тогда OrphArrayHelper, где BaseArrayHelper будет предоставлять свою функционалность, про этот случай. Получится что для решения 2 двух схожих задач нужно будет использовать 2 разных класса, и знать где - какой. В случае наследования можно вседа использовать ребека, зная что в нём собрано всё необходимое и от разработчиков фреймворка и от команды проекта, чем это плохо?
В композиции тоже можно использовать базовый класс и все его методы без наследования. Относительно наследования преимущество в том, что это меньше ломает код, поскольку юзается публичный интерфейс.
Обсуждают сегодня