Structural Pattern Conclusion
This module discussed structural patterns. Structural object patterns use composition to build larger structures from individual objects.
Structural class patterns use inheritance to combine the interfaces or implementations of multiple classes.
Used properly, structural patterns can increase the efficiency of your code, enhance its reusability and flexibility,
more cleanly separate implementation from interface, and reduce complexity by providing cleaner, simpler interfaces to a system that are easier for client programmers to understand.
The Adapter Design Pattern is a type of design pattern that is used for converting the interface of a class into an interface that its clients expect
to see. This pattern allows incompatible interfaces to work together.
- The Bridge Design Pattern separates an abstract interface from its implementation so that both the interface and its implementation can change
without any dependancy between each other.
- The Composite Design Pattern is used to compose objects so that they can be represented in part-whole hierarchies in tree-structures.
This pattern allows clients to treat individual objects equally.
- The Decorator Design Pattern is used when additional functionality needs to be added to objects dynamically.
This pattern provides an alternative to subclassing for extending an object's functionality.
- The Facade Design Pattern is used to provide a high-level interface that makes the subsystem easier to use. It helps create a unified interface to a set of interfaces in the subsystem.
- The Flyweight Design Pattern is used to share a large numbers of small objects efficiently
The Proxy Design Pattern is used is used when it is required to use another object as a substitute to control access to this object.