Name: Bridge Intent: - avoid compile-time binding of an abstraction and its implementation - decouple an abstraction and its implementation so that the can vary independently Structure: - abstraction holds a reference to its implementation - some operation of the abstraction are delegated to the implementation Notes: - sometimes there are many implementation (and several abstractions) - sometimes applied to hierarchies - bridge capabilities are provided by delegation, not inheritance - see Proxy, Adapter, Facade