以上说明非常好。
但是,我对
中给出的装饰器模式(DeP)的实现感到有些困惑以上链接代码的设计见tinypic.com/view.php?pic=xnaqlt&s=3
我对“super.callTrailer();”感到困惑在装饰器类Header1,Header2,Footer1和Footer2中,所有这些都派生自TicketDecorator。
不应该只是“callTrailer();” ?由于“private Component myTrailer”行,每个装饰器对象都有自己对下一个装饰器的引用。
注意:我不是非常精通Java并且是设计模式的初学者。
答案 0 :(得分:2)
他们都会给你相同的结果。由于callTrailer()仅存在于父类中,因此单独调用callTrailer()将自动调用TicketDecorator的callTrailer()。我猜他们把super放在那里的原因是为了明确它是在调用父方法。