代理模式

代理模式是一种结构型设计模式。参与者主要有两个,即代理对象和真实对象。

  • 远程代理
    • 代理对象在一个地址空间,而实际对象在另一个地址空间,此时代理就是远程的。除了使用远程代理做防火墙,远程代理还可以用于在线游戏平台。
  • 虚拟代理
    • 虚拟代理可以缓存一个真实主题的有关信息,从而能延迟对这个真实主体的访问。有时候在真实对象处理登录数据之前,高安全性登录会使用一个虚拟代理来完成登录。
  • 保护代理
    • 保护代理只有在验证通过之后,才会把请求发送给真实主题。这个真实主题就是请求的目标,如访问数据库信息。根据用户的登录信息,很多保护代理会提供级别的访问;并不是建立一个真实主题,真是主体可能是多个,而且是受限的。
  • 智能引用
    • 程序可以使用”裸指针”,不过如果这个指针不能满足程序的需要,代理就相当于一个智能引用,可以在引用对象时完成额外的动作。例如,可能受限由作为智能引用的代理参加者加载一个数据库的数据。

UML类图

代理模式

图 7-1 代理模式类图

适用场景

为了提高安全性,或是隐藏真正实体,适合代理模式。例如,读写分离,负载均衡器等。

代码示例:https://github.com/lemon2015/design-mode/tree/master/Proxy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值