Summary of structural patterns
In this chapter we have seen the
The Adapter pattern, used to change the interface of one class to that of another one.
The Bridge pattern, intended to keep the interface to your client program constant while allowing you to change the actual kind of class you display or use. You can then change the interface and the underlying class separately.
The Composite pattern, a collection of objects, any one of which may be either itself a Composite, or just a primitive object.
The Decorator pattern, a class that surrounds a given class, adds new capabilities to it, and passes all the unchanged methods to the underlying class.
The Façade pattern, which groups a complex object hierarchy and provides a new, simpler interface to access those data.
The Flyweight pattern, which provides a way to limit the proliferation of small, similar class instances by moving some of the class data outside the class and passing it in during various execution methods.
The Proxy pattern, which provides a simple place-holder class for a more complex class which is expensive to instantiate.