приведенное выше объяснение очень приятно.
Однако меня слегка смущает реализация шаблона Decorator (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 и начинаю изучать шаблоны проектирования.