The Bridge design pattern is a structural design pattern that decouples an abstraction from its implementation so that the two can vary independently.
- Abstraction: Defines the interface for the client code
- Implementation: Provides the actual implementation of that interface
The two components are connected by a bridge, which allows the Abstraction to use the Implementation without the client code knowing anything about the Implementation.