代理:只在意结果,过程由代理去做。例如:海外购物
代理模式:为其他对象提供一种代理,用以控制对这个对象的访问。
AbstractObject抽象对象角色。
RealObject 目标对象角色。
ProxyObject 代理对象角色。
+realObject持有目标对象的引用;为了可以在任何操作RealObject对象,而且和RealObject又有统一的接口。方便在任何时候替换掉目标对象。
代码讲解:
public abstract class AbstractObject {
protected abstract void operation();
}
是被目标类和代理类共同继承的。
public class RealObject extends AbstractObject {
@Override
protected void operation() {
System.out.println(“do operation…”);
}
}
使用场景:要对你已有方法做改进。
采用一个代理类调用原来的方法,对产生的结果进行控制。