Browse Java Design Patterns & Enterprise Application Architecture

Bridge Pattern

Use the Bridge pattern in Java when abstraction and implementation need to vary independently instead of multiplying subclasses.

Bridge is useful when one inheritance tree is trying to represent two different reasons to change.

In Java, that often appears when an abstraction such as Notification, Report, or DeviceCommand must support multiple operational back ends such as email, SMS, PDF, REST, or hardware drivers. If those concerns stay fused, subclass growth becomes predictable and painful.

Bridge separates the abstraction side from the implementation side so each can evolve on its own. That makes the pattern more architectural than adapter. Adapter translates one awkward dependency. Bridge deliberately designs two dimensions of variation from the start.

In this section

Revised on Thursday, April 23, 2026