设计模式学习专栏十一--------代理模式

设计模式学习专栏十一--------代理模式

名称 : 代理模式(Proxy)

价值观念 : 控制对象的访问

场景


之前以状态模式开发的糖果机设计得很好 , 现在老板希望能远程获取旗下所有糖果机得库存状况

RMI示意图

  1. 客户到RMI 的注册表中查找
  2. RMI注册表返回Stub对象
  3. 客户调用Stub的方法,就像Stub就是真正的服务对象一样
  4. 客户辅助对象(Stub)打包调用信息(变量\方法名称等) , 然后通过网络把它运给服务辅助对象
  5. 服务辅助对象(Skelton)把来自客户辅助对象的信息解包 , 找出被调用的方法 ,然后调用真正的服务对象上的方法
  6. 服务对象上的方法被调用,把结果返回给服务辅助对象
  7. 服务辅助对象把调用的返回信息打包,然后通过网络运给客户辅助对象
  8. 客户辅助对象把返回值解包,返回给客户对象,对于客户来说,这是完全透明的

代理模式总览


定义:为另一个对象提供一个替身以访问这个对象

  • 模式的理解

    • 类图

    • 角色

      • 代理
      • 真实对象
      • 客户
    • 细节

      • 代理模式为另一个对象提供代表, 以便控制客户对对象的访问,管理访问的方式有很多种
        • 远程代理管理客户和远程对象之间的交互
        • 虚拟代理控制访问实例化开销大的对象
        • 保护代理基于调用者控制对对象方法的访问
      • 代理模式还有许多其他变种
        • 缓存代理 , 同步代理 , 防火墙代理 , 写入时复制代理等等
      • 代理模式和装饰者模式在类图结构上是一样的,但目的不同
        • 代理模式是控制访问 , 装饰者模式是为对象上加入行为
虚拟代理示意图

动态代理类图

参考

​ 书籍: HeadFirst设计模式

​ 代码参考地址: 我就是那个地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值