关于超级关键词的困惑;用Java实现的Decorator模式

时间:2010-07-17 16:21:22

标签: java design-patterns super

以上说明非常好。

但是,我对

中给出的装饰器模式(DeP)的实现感到有些困惑

http://www.netobjectives.com/resources/books/design-patterns-explained/java-code-examples/chapter17/#17-1

以上链接代码的设计见tinypic.com/view.php?pic=xnaqlt&s=3

我对“super.callTrailer();”感到困惑在装饰器类Header1,Header2,Footer1和Footer2中,所有这些都派生自TicketDecorator。

不应该只是“callTrailer();” ?由于“private Component myTrailer”行,每个装饰器对象都有自己对下一个装饰器的引用。

注意:我不是非常精通Java并且是设计模式的初学者。

1 个答案:

答案 0 :(得分:2)

他们都会给你相同的结果。由于callTrailer()仅存在于父类中,因此单独调用callTrailer()将自动调用TicketDecorator的callTrailer()。我猜他们把super放在那里的原因是为了明确它是在调用父方法。