Класс не предназначен "быть украшенным". Ты думал о рефакторинге?

ел бы реализовать шаблон проектирования Decorator, используя наследование (Decorator extends Component) потому что мне нужен доступ к защищенным полям / методам класса Component.

Проблема в том, что класс Component представляет алгоритм, он выполняет некоторую предварительную обработку при построении и содержит значительный объем данных. Теперь каждый раз, когда я буду украшать Компонент, я буду создавать новый экземпляр Decorator, который потребует создания нового (бесполезного) экземпляра Компонента, выполняющего ненужные вычисления и хранящего ненужные данные.

Я хотел использовать интерфейсы вместо наследования, но тогда я не смогу получить доступ к защищенной информации Компонента.

Правильно ли я беспокоиться о потере ресурсов при расширении класса Component? И если так, как я могу избежать этого, не теряя доступа к информации, которая мне нужна?

И последнее замечание: я мог бы создать экземпляр Decorator, предоставив ему «фиктивные» данные, чтобы он выполнял минимальные вычисления, но это решение кажется грязным.

Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос