abstract class Abstraction { protected Implementor implementor; public void setImplementor(Implementor implementor) { this.implementor = implementor; } abstract public void operation(); }
public class RefinedAbstraction extends Abstraction { public void operation() { implementor.operation(); } }
public interface Implementor { public void operation(); }
public class ConcreteImplementorA implements Implementor { public void operation() { System.out.println("ConcreteImplementorA operationメソッド"); } }
public class ConcreteImplementorB implements Implementor { public void operation() { System.out.println("ConcreteImplementorB operationメソッド"); } }
public class Client { public static void main(String[] args) { Abstraction abstraction = new RefinedAbstraction(); abstraction.setImplementor(new ConcreteImplementorA()); abstraction.operation(); abstraction.setImplementor(new ConcreteImplementorB()); abstraction.operation(); } }
C:\JavaHello\Bridge>java Client ConcreteImplementorA operationメソッド ConcreteImplementorB operationメソッド C:\JavaHello\Bridge>