@songying
2018-08-22T13:12:24.000000Z
字数 1179
阅读 1192
设计模式
将抽象和实现解耦,使得两者可以独立的变化。

Abstraction: 抽象化角色
主要职责是定义出该角色的行为,同时保存一个对实现化角色的作用, 该角色一般为抽象类。
Implementor: 实现化角色
接口或抽象类,定义角色必须的行为和属性
RefinedAbstraction: 修正抽象化角色
引用实现化角色对抽象化角色进行修正
ConcreteImplement: 具体实现化角色
实现接口或抽象类定义的方法和属性
public abstract class Abstraction{// 定义对实现化角色的引用private Implementor imp;// 约束子类必须实现该构造函数public Abstraction(Implementor _imp){this.imp = _imp;}// 自身的定义和属性public void request(){this.imp.doSomething();}// 获得实现化角色public IMplementor getImp(){return imp;}
public inferface Implementor{public void doSomething();public void doAnything();
public class RefinedAbstraction extends Abstraction{public RefinedAbstraction(Implementor _imp){super(_imp)}@Overridepublic void request(){super.request();super.getImp().doAnything();}}
public class ConcreteImplementor1 implements Implementor{public void doSomething(){// 业务逻辑处理}public void doAnything(){//业务逻辑处理}
public class RefinedAbstraction extends {// 覆写构造函数public RefinedAbstraction(Implementor _imp){super(_imp)}@Overridepublic void request(){// 业务处理super.request();super.getImp().doAnything();}}
public class CLient{public static void main(String[] args){Implenmentor imp = new ConcreteImplementor1();Abstraction abs = new RefinedAbstraction(imp);abs.request();}}
