但是,我对装饰者模式(DeP)的实现有点困惑,如
http://www.netobjectives.com/resources/books/design-patterns-explained/java-code-examples/chapter17/#17-1
以上链接代码的设计见tinypic.com/view.php?pic=xnaqlt&s=3
我被装饰器类Header1、Header2、Footer1和Footer2中的"super.callTrailer();“弄糊涂了,它们都是从TicketDecorator派生的。
它不应该只是"callTrailer();“吗?因为每个装饰器对象都有自己对下一个装饰器的引用,这是由于行"private Component myTrailer;“。
注意:我不太精通Java,也不是设计模式的初学者。
发布于 2010-07-18 00:32:59
它们都会给你相同的结果。由于callTrailer()只存在于父类中,因此调用callTrailer()本身将自动调用TicketDecorator的callTrailer()。我猜他们把super放在里面的原因是为了让它显式地调用父函数的方法。
https://stackoverflow.com/questions/3272279
复制相似问题