В настоящее время я хочу реализовать шаблон Decorator на статическом языке. Рассмотрим следующую структуру:
Entity <-------- Decorator
^ ^ ^
| | |
| | |
Shape Group ConcreteDec
Когда у меня есть только ConcreteDec
, я не могу вызвать Group.add(Entity)
, функцию, которая определена в Group
, но не унаследована от Entity
. Shape
не класс, который мог бы добавить что-либо; Shape
не может иметь членов, это не имеет смысла. Наследование add(Entity)
от Entity
в Shape
не будет возможным.
Есть ли способ вызова add(Entity)
из ConcreteDec
без прерывания Shape
или шаблона декоратора?