The Bridge pattern decouples an abstraction from its implementation so that they can vary independently. It is applicable when abstraction and implementation should be extensible by subclassing and changes in implementation should not affect clients. The structure of Bridge pattern contains Abstraction, RefinedAbstraction, Implementor and ConcreteImplementor classes. Abstraction maintains reference to Implementor and forwards requests to it. This decouples interface and implementation and improves extensibility.