Chapter 18. Implementing Structural Object-Oriented Design Patterns
Continuing on from the creational design patterns in the previous chapter, you are going to harness the advantages in implementing structural design patterns using AspectJ.
Although the benefits of applying aspects vary depending on the specific pattern, structural object-oriented (OO) design patterns gain more from aspects than their creational cousins. This is mostly due to the cross-cutting and generic nature of structural design patterns which tends to lend itself nicely to aspect-oriented implementations.
Unfortunately, aspect orientation does not provide any real benefits when designing or implementing the façade pattern. The goal of the façade is to provide a simpler interface to a larger collection of objects of complex components. This goal can be achieved in a system where the source code is known using standard classes and method calls, requiring none of the additional mechanisms of AspectJ.
18.1. Implementing the Composite Pattern
You want to apply the composite pattern using AspectJ.
The composite pattern provides the capability to group objects together in a collection and interact with the group as a whole in a similar manner as you would interact with an individual member of the group.