# What > **Bridge** is a structural design pattern that lets you split a large class or a set of closely related classes into two separate hierarchies—**abstraction** and **implementation**—which can be developed independently of each other. # Why # Where > The Bridge pattern is especially useful when dealing with cross-platform apps, supporting multiple types of database servers or working with several API providers of a certain kind (for example, cloud platforms, social networks, etc.) [Bridge in Java / Design Patterns (refactoring.guru)](https://refactoring.guru/design-patterns/bridge/java/example) # Analogy # Reference - [Bridge (refactoring.guru)](https://refactoring.guru/design-patterns/bridge)