Bridge is used when we need to decouple an abstraction from its implementation so that the two can vary independently . This type of design pattern comes under structural pattern as this pattern decouples implementation class and abstract class by providing a bridge structure between them.