The Bridge Pattern
Decouples abstraction from implementation. Inheritance tightly couples an abstraction with an implementation at compile time. The Bridge pattern can be used to avoid binding between abstraction and implementation and to select the implementation at runtime.
If you have a Car hierarchies of classes ,it can become extremely big like in the below diagram.
- Defines class hierarchies consisting of primitive objects and composite objects
- Makes it easier to add new kinds of components
- Provides flexibility of structure and a manageable interface
When to use:
- You want to represent the whole hierarchy or a part of the hierarchy of object
- You want clients to be able to ignore the difference between compositions of objects and individual objects
- The structure can have any level of complexity and is dynamic.