Several known uses of the Chain of Responsibility pattern are presented. Structural object patterns describe ways to compose objects to implement new functionality. Composite is an example of a structural object pattern. The Composite pattern composes objects into tree structures to represent part-whole hierarchies. The composite objects allow users to compose primitive and other composite objects into complex structures.
Clients become simple.
Clients don't know whether they are dealing with individual or composite component, and they treat these components uniformly. Adding new kinds of components becomes easier. Clients don't need to be changed for the new component classes. It may make user's design overly general. It makes it harder to restrict the components of a composite.