1.用意
2.类图
3.代码
z
1.用意
将抽象化与实现化脱耦,使得二者可以独立地变化。
2.类图
3.代码
/*
* 抽象化角色
*/
public abstract class Abstraction {
protected Implementor imp;
public void operation() {
imp.operationImp();
}
}
/*
* 修正抽象化角色
*/
public class RefinedAbstraction extends Abstraction {
public void operation() {
imp.operationImp();
}
}
/*
* 具体化角色
*/
public abstract class Implementor {
public abstract void operationImp();
}
/*
* 具体实现化角色A
*/
public class ConcreteImplementorA extends Implementor {
public void operationImp() {
System.out.println("A Do something...");
}
}
/*
* 具体实现化角色B
*/
public class ConcreteImplementorB extends Implementor {
public void operationImp() {
System.out.println("B Do something...");
}
}
/*
* 测试类
*/
public class Test {
public static void main(String[] args) {
RefinedAbstraction r = new RefinedAbstraction();
r.imp = new ConcreteImplementorA();
r.operation();
}
}
z