2911. Design Pattern - Bridge
Bridge Pattern


Structural Pattern: Bridge Pattern.

1. Bridge Pattern

The Bridge pattern decouples an abstraction from its implementation, so that the two can vary independently.

2. Example

2.1 Workshop

public interface Workshop { abstract public void work(); } public class Produce implements Workshop { @Override public void work() { System.out.print("Produced"); } } public class Assemble implements Workshop { @Override public void work() { System.out.print(" And"); System.out.println(" Assembled."); } } 

2.1 Vehicle

public abstract class Vehicle { protected Workshop workShop1; protected Workshop workShop2; protected Vehicle(Workshop workShop1, Workshop workShop2) { this.workShop1 = workShop1; this.workShop2 = workShop2; } abstract public void manufacture(); } public class Bike extends Vehicle { public Bike(Workshop workShop1, Workshop workShop2) { super(workShop1, workShop2); } @Override public void manufacture() { System.out.print("Bike "); workShop1.work(); workShop2.work(); } } public class Car extends Vehicle { public Car(Workshop workShop1, Workshop workShop2) { super(workShop1, workShop2); } @Override public void manufacture() { System.out.print("Car "); workShop1.work(); workShop2.work(); } } 

2.3 Client

public class Client { public void run() { Vehicle vehicle1 = new Car(new Produce(), new Assemble()); vehicle1.manufacture(); Vehicle vehicle2 = new Bike(new Produce(), new Assemble()); vehicle2.manufacture(); } } 

Output.

Car Produced And Assembled. Bike Produced And Assembled. 

3. Source Files

4. References