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