首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >装饰者模式,头部优先设计模式

装饰者模式,头部优先设计模式
EN

Stack Overflow用户
提问于 2015-04-25 23:44:02
回答 1查看 215关注 0票数 2

我正在读Head First Design Patterns这本书。在第3章(“装饰对象:装饰器模式”)中,我不理解这一部分:

“对于一些饮料的客户来说,最终得到的装饰器不是最外面的装饰器,这不是很容易吗?比如,如果我有一个含有摩卡、大豆和鞭子的DarkRoast,那么很容易编写代码,以某种方式以引用大豆而不是鞭子结束,这意味着它不会在订单中包括鞭子。”

有人能帮我理解这一部分的要点吗,以及作者正在解决的主要问题是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-04-26 00:29:06

我想他们想要指出的是,如果你不小心在哪里以及如何创建装饰对象,你可能会把引用搞混。考虑一下第98页的例子(2004年的第一版)。

代码语言:javascript
复制
Beverage beverage3 = new HouseBlend();
beverage3 = new Soy(beverage3);
beverage3 = new Mocha(beverage3);
beverage3 = new Whip(beverage3);

如果你在这些创造步骤之间做一些事情,你可能最终会得到一杯没有鞭子的摩卡咖啡。

就像他们在答案部分写的那样:

然而,装饰器通常是通过使用其他模式来创建的,如工厂和构建器。

如果自动创建对象,可能会防止出现引用错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29867281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档