Я читаю рисунок дизайна Decorator от Gof. Я имею неурядицы в следующих точкахConfusion in Decorator Pattern
Это говорит важный аспект паттерна это позволяет декораторы появляться в любом месте, где используется компонент. Клиент не может вообще сказать разницу между украшенным компонентом или не украшенным компонентом? Например, если я думаю, что я клиент, а базовый компонент связан с электронной почтой, но я также хочу, чтобы он был защищен. Кто-то предоставляет мне функциональность.
Email email = new SecuredEmail(new TextEmail());
В: Это просто довольно гипотетически. Разве я не знаю, как клиент знает , что этот текст-адрес украшен? Я просто смущен, может кто-то прояснить это сомнение?
Декоратор и его компонент не идентичны. Декоратор действует как прозрачный корпус . Но с точки зрения идентичности объекта декорированный компонент не идентичен самому компоненту. Следовательно, вы не должны полагаться на идентификатор объекта при использовании декораторов. Что это значит?
Может кто-нибудь объяснить эти две части.
Бен
Вы собрали создание и использование. Это две совершенно разные вещи в шаблонах. Во время творения вы должны все знать. Во время использования вам не нужны эти знания. – nikita