首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >装饰器模式装饰器限制

装饰器模式装饰器限制
EN

Stack Overflow用户
提问于 2016-09-26 10:28:01
回答 1查看 256关注 0票数 0

我目前正在编写一个使用装饰器模式的程序。我正在尝试找出如何限制我可以添加到第一个类的装饰器的数量。例如:

代码语言:javascript
复制
Pizza plainPizza = new PlainPizza;
Pizza sausage = new Sausage(plainPizza);

在我可以限制我添加的装饰器数量的情况下,我如何编写代码呢?例如,如果我尝试将此代码添加到前面的代码之上:

代码语言:javascript
复制
Pizza pepperoni = new Pepperoni(sausage);

我如何防止它允许添加/包装意大利香肠?

我试图使用一个抛出异常,但问题是,我的装饰器调用了它的超类,所以我无法在初始化实例变量之前进行测试!

EN

回答 1

Stack Overflow用户

发布于 2016-09-26 22:34:53

您可以使用Builder pattern创建一个构建器,该构建器将应用您需要的所有类型的装饰器。Builder还可以在内部跟踪您应用的装饰器的数量,并在尝试添加超过允许的装饰器数量时做出相应的反应。

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

https://stackoverflow.com/questions/39693886

复制
相关文章

相似问题

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