We may need to adapt a class's interface, implementation, or both. Separate a class's interface from its implementation by making each a separate but tightly coupled objects. This way each can be varied independently of the other. Tight coupling within the Bridge structure is both common and desirable. The tight coupling is much easier to manage when all the implementation objects come from the same class, as illustrated in the Codebook example illustrated below.
Bridges are scale-independent structures that apply in many object oriented situations.
A Bridge also serves as an atomic element player in other design patterns. Rationale The usual way to manage the requirement for different interface or implementation is by extending the class hierarchy using inheritance. After all, inheritance is usually the first mechanism most folks use to reuse their classes. In the early going, inheritance is always a big success. This means that interface and implementation aspects cannot be independently varied without extending the class hierarchy.