Замена наследования делегированием
20 февраля 2017, 16:58
Проблема
У вас есть подкласс, который использует только часть методов суперкласса или не хочет наследовать его данные.
Решение
Создайте поле и поместите в него объект суперкласса, делегируйте выполнение методов объекту-суперклассу, уберите наследование.
Достоинства
Класс не содержит лишних методов, которые достались ему в наследство от суперкласса.
В поле-делегат можно подставлять разные объекты, имеющие различные реализации функциональности. По сути, вы получаете реализацию паттерна проектирования Стратегия.
Твитнуть
Поделиться
Поделиться
Популярное