GoF Composite Pattern

Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.

Componentized Composite Pattern

PerfectJPattern's offers a fully componentized version of the Composite pattern in Java. Users need only to provide the Component interface and directly use the type-safe Composite implementation. See example below.

If the specific context Component interface contains functions i.e. methods that should return a value then the default Composite implementation returns null. Users are responsible to subclass Composite and define how to aggregate the multiple returned values from specific Method. In future releases the aggregation mechanism will be improved.

The Composite implementation extends ArrayList so it exposes all List features to create the compositions. ArrayList implementation was preferred over others for maximizing the speed of iterations.

UML Class Design