2015-04-25 2 views
2

Я читаю голову первый дизайн картины, отдел декоратора. Я не могу понять одну части этой книги?Рисунок декоратора, голова первая

«Не было бы легко для некоторых клиент напитка, чтобы в конечном итоге с декоратором, который не является внешним декоратор Как если бы я имел DarkRoast с Mocha, Soy и Whip, было бы легко написать код, который каким-то образом закончился со ссылкой на Soy вместо Whip, , что означает, что он не будет включать Whip в порядке. "

Любой орган может помочь мне понять основную тему этого раздела? В чем проблема, о которой впервые упоминал руководитель? С благодарностью

+0

Это действительно паршивое объяснение. Игнорируй это. Декоратор - это просто обертка - вот и все. – alfasin

ответ

1

Я думаю, что они хотели бы указать на то, что вы можете смешать свои ссылки, если не будете осторожны, где и как вы создаете свои украшенные объекты. Рассмотрим пример на стр. 98 (первое издание за 2004 год).

Beverage beverage3 = new HouseBlend(); 
beverage3 = new Soy(beverage3); 
beverage3 = new Mocha(beverage3); 
beverage3 = new Whip(beverage3); 

Если бы материал между этими шагами создания, вы могли бы в конечном итоге с мокко без кнут.

И как они писали в разделе ответов:

Однако декораторы обычно создаются с использованием других моделей, таких как фабрики и Builder.

Если вы автоматизируете создание объекта, это может помешать вам сделать справочные ошибки.

+1

Не могли бы вы привести пример того, что означало бы «делать вещи между ними»? (Пример приведен на стр. 100 для издания второго издания/10-летнего юбилея) – hamena314

Смежные вопросы