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.