GofPatterns Gofpatterns  





Structural Patterns  «Prev  Next»
Lesson 3 How do structural patterns help programmers?
ObjectiveSee what structural patterns can do for you.

How do Structural Patterns help Programmers?

Structural patterns include some quite sophisticated and powerful techniques. However, they are based on just a few basic techniques, primarily:
  1. Delegation: The pattern is one in which a given object provides an interface to a set of operations. However, the actual work for those operations is performed by one or more other objects.
  2. Object composition: Other objects are stored as pointers or references inside the object that provides the interface to clients. Object composition is a powerful yet often overlooked tool in the OOP programmer's toolbox. Structural patterns show you how to take advantage of it.

Benefits

Structural patterns have many beneficial effects including:
  1. Increased efficiency (Decorator, Flyweight, Proxy)
  2. Enhanced reusability (Adapter, Bridge, Decorator)
  3. Separating implementation from interface (Adapter, Bridge, Façade, Proxy)
  4. Reducing complexity by providing cleaner, simpler interfaces to a system that are easier for client programmers to understand (Adapter, Bridge, Composite, Facade, Proxy)



Of the many purposes of the seven structural patterns, here are 10 reasons to use structural pattens:
  1. Add new functionality dynamically to existing objects, or remove it (Decorator).
  2. Control access to an object (Proxy).
  3. Create expensive objects on demand (Proxy).
  4. Enable development of the interface and implementation of a component to proceed independently (Bridge).
  5. Match otherwise incompatible interfaces (Adapter).
  6. Reduce the cost of working with large numbers of very small objects (Flyweight).
  7. Reorganize a system with many subsystems into identifiable layers with single entry points (Façade).
  8. Select or switch implementations at runtime (Bridge).
  9. Simplify the interface to a complex subsystem (Façade).
  10. Treat single objects and composite objects in the same way (Composite).
In the next lesson, you will become familiar with the structural patterns introduced here.