Bridge is about connecting. Bridge allows one abstract interface with multiple abstract implementations. This design pattern falls under fitness for future because it provides support for different implementations. Example of this is a character class in Super Mario. The class contains an interface called jump. Mario and Luigi would both extended to the class and implements the jump function, but their jumps are different (Luigi jumps higher than Mario). In bridge, the actual implementation is what changes over time, but the interface stays the same. === Stuff that changes: implementations of refined abstractions & concrete implementors Stuff that stays the same: interfaces of abstractions & implementors Also we are pretty sure that the Mario/Luigi example is NOT an example of the bridge design pattern. But if pressing space meant Mario jumped & Luigi ran backwards, then you could make a bridge design pattern out of that: the abstraction would be the character interface, & the implementor would be the action that the character would take. key ---> CharacterClass <>----- Action | | | | --------- ---------- | | | | Mario Luigi Jump RunBackwards (The above example may not be correct either.)