设计模式(十一):代理模式

优点:

  ① 将代理对象和真实被调用的目标对象分离,降低了耦合度,提高了扩展性。

  ② 保护和增强目标对象。

缺点:

  ① 增加了代理类,请求速度变慢,增加系统复杂性。

适用范围:

  ① 安全代理,用来控制真实对象的访问权限。

  ② 智能代理,调用真实对象时,代理处理另外一些事。

  ③ 虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。

  ④远程代理,为一个对象在不同的地址空间提供局部代表。可以隐藏一个对象在不同地址空间的事实。

客户端:

  String schoolGirl = "jiaojiao";
  Proxy daili = new Proxy(schoolGirl);  //创建代理
  daili.giveFlowers(); // 原赠送人方法
  daili.giveChocolate(); // 原赠送人方法
  daili.say(); // 代理独有的新增方法

    /**
     * GiveGift (接口,送礼物方法)
     * Pursuer(赠送人,实现GiveGift接口)
     *
     * Proxy(代理人,实现GiveGift接口的所有方法,且有自己独特的方法)
     */

 

posted on 2019-01-08 14:12  书生游  阅读(124)  评论(0编辑  收藏  举报