装饰模式装饰器限制
问题描述:
我目前正在使用装饰模式编写一个程序。我试图找出如何限制我可以添加到第一类的装饰器的数量。如:装饰模式装饰器限制
Pizza plainPizza = new PlainPizza;
Pizza sausage = new Sausage(plainPizza);
我怎么能这样编码,我可以限制在我添加的装饰器的数量。比如,如果我尝试添加这在以前的代码的顶部:
Pizza pepperoni = new Pepperoni(sausage);
我怎样才能防止它允许添加/包辣?
我试图使用抛出异常,但问题是,我的装饰器调用它的超类,所以我无法在初始化实例变量之前测试!
你不能。这是装饰者模式的要点。 –
听起来更像装饰者模式不适合你的用例。 –
@XaverKapeller这是我的教授在实验室里做的。这是许多任务之一。不知道该怎么做。我试图抛出异常,但我不能,因为在测试count之前我会调用super。 – Cole