定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。
结构图:
示例代码:
public interface Implementor {
public void Operation();
}
public class ConcreteImplementorA implements Implementor {
@Override
public void Operation() {
// TODO Auto-generated method stub
System.out.println("具体实现A的方法执行");
}
}
public class ConcreteImplementorB implements Implementor {
@Override
public void Operation() {
// TODO Auto-generated method stub
System.out.println("具体实现B的方法执行!");
}
}
public class Abstraction {
Implementor implementor;
public void setImplementor(Implementor implementor) {
this.implementor = implementor;
}
public void Operation() {
implementor.Operation();
}
}
public class RefineAbstraction extends Abstraction {
@Override
public void Operation() {
// TODO Auto-generated method stub
implementor.Operation();
}
}
public class Client {
public static void main(String[] args) {
Abstraction ab = new RefineAbstraction();
ab.setImplementor(new ConcreteImplementorA());
ab.Operation();
ab.setImplementor(new ConcreteImplementorB());
ab.Operation();
}
}
具体实现A的方法执行
具体实现B的方法执行!