2911. Design Pattern - BridgeBridge 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.