B.Bridge
Summary
The intent of this pattern is to decouple abstraction from implementation so that the two can vary independently.
Actually Adapter Pattern + Strategy Pattern =Bridge Pattern
This allows further decoupling and target implementation and adapter both can be changed at run time.
Class Diagram
Abstraction (Abstract Class) contains an instance of Implantation interface and this relationship is called bridge.
Abstraction route calls to Implantation via its interface
Example
Implantation of generic TV remote
Special Considerations
Bridge Vs Adapter
Bridge is actually extension of adapter pattern by combining with strategy.
Both solve decoupling purpose but bridge is more loosely coupled.
Adapter :
Client Holds Adapter>> Adapter holds Adoptee
Bridge
Abstraction of Client Holds Adoptee Interface (Implantation) Instance and routes calls to Adoptee.
That means several version of client can use same adapter.
It is useful when adapter is subjected to change in future. (That implement strategy)