我正在读头第一个设计图案书,装饰者部分。我无法理解这本书的一部分:装饰者图案,头先
“那岂不是容易的饮料的一些 客户落得 一个装饰是不是最外层 装饰一样,如果我有一个在DarkRoast与 摩卡,大豆和鞭子,这将很容易 编写的代码,以某种方式结束了 与大豆而不是鞭子, ,这意味着它不包括鞭子在 命令。
任何机构都可以帮助我理解本节的主要内容? 首先提到它的问题是什么? 谢谢
我正在读头第一个设计图案书,装饰者部分。我无法理解这本书的一部分:装饰者图案,头先
“那岂不是容易的饮料的一些 客户落得 一个装饰是不是最外层 装饰一样,如果我有一个在DarkRoast与 摩卡,大豆和鞭子,这将很容易 编写的代码,以某种方式结束了 与大豆而不是鞭子, ,这意味着它不包括鞭子在 命令。
任何机构都可以帮助我理解本节的主要内容? 首先提到它的问题是什么? 谢谢
我想他们想指出的是,如果您不小心在哪里以及如何创建装饰物体,可以将参考文献混淆。考虑一下第98页的例子(2004年的第一版)。
Beverage beverage3 = new HouseBlend();
beverage3 = new Soy(beverage3);
beverage3 = new Mocha(beverage3);
beverage3 = new Whip(beverage3);
如果你想在创作的这些步骤之间做些什么,你可能会得到一个没有鞭子的摩卡。
而且,就像他们在回答部分写道:
然而,装饰通常通过使用其他模式,比如工厂和Builder创建。
如果您自动创建对象,它可能会阻止您发生引用错误。
你能举个例子来说明“在两者之间做什么”意味着什么? (第二版/ 10周年纪念版现在是第100页的例子) – hamena314
这真是一个糟糕的解释。忽略它。装饰者只是一个包装 - 这就是它的一切。 – alfasin