Purpose

Decouple an abstraction from its implementation so that the two can vary independently. (http://en.wikipedia.org/wiki/Bridge_pattern)

Sample: