package cn.桥接模式;
public abstract class Abstraction { //抽象类
protected Implementor impl;
public void setImpl(Implementor impl) {
this.impl = impl;
}
public abstract void operation();
}
package cn.桥接模式;
public class RefinedAbstraction extends Abstraction{ //扩展抽象类
public void operation() {
//代码
impl.operationImpl();
//代码
}
}
package cn.桥接模式;
public interface Implementor { //实现类
public void operationImpl();
}
package cn.桥接模式;
public class ConcreteImplementorA implements Implementor{ //具体实现类A
public void operationImpl() {
System.out.println("具体实现A");
}
}
package cn.桥接模式;
public class ConcreteImplementorB implements Implementor{ //具体实现类B
public void operationImpl() {
System.out.println("具体实现B");
}
}
package cn.桥接模式;
public class Clinet { //客户端类
public static void main(String[] args) {
Implementor impl ;
Abstraction abstr = new RefinedAbstraction();
impl = new ConcreteImplementorA();
abstr.setImpl(impl);
abstr.operation();
}
}
运行效果图