System Overview - Bridge pattern
The Bridge pattern helps separate an abstraction from its implementation. This allows both to change independently. It is useful when you want to avoid a permanent binding between an interface and its implementation.
Key requirements include flexibility to extend abstractions and implementations without modifying existing code.