Bridge Pattern Decouple an abstraction from its implementation so that the two can vary independently.