设计模式之代理模式(Proxy)

代理模式:

interface IBuy {
    public void buy();
}

class RealBuyer implements IBuy {
    @Override
    public void buy() {
          System.out.println("2、购物消费");
    }
}

class ProxyBuyer implements IBuy {

    private IBuy buy;

    public ProxyBuyer(IBuy buy) {
          this.buy = buy;
    }

    @Override
    public void buy() {
          this.prepare();
          this.buy.buy();
          this.record();
    }

    public void prepare() {
          System.out.println("1、推荐店家【代理】");
    }

    public void record() {
          System.out.println("3、送货上门【代理】");
    }
}

public class ProxyPatternDemo {

    public static void main(String[] args) {
          IBuy user = new RealBuyer();
          IBuy buy = new ProxyBuyer(user);
          buy.buy();
    }

}

特点:存在真实业务和代理业务并且两者有统一的接口,代理业务需要有一个以接口为参数的构造方法。

优点:将开发的注意力集中在核心业务功能的处理上,降低系统的耦合度。

缺点:在客户端和真实业务之间增加了代理对象。

原文地址:https://www.cnblogs.com/cnyl/p/13628448.html