前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >设计模式结构性:代理模式(ProxyPattern)

设计模式结构性:代理模式(ProxyPattern)

作者头像
码农架构
发布2020-12-28 11:16:42
发布2020-12-28 11:16:42
5410
举报
文章被收录于专栏:码农架构码农架构

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

结构图

角色与理解

  • 代理模式共分为四种角色:
    • Subject(抽象主题角色):真实主题角色与代理主题角色的共同父类,可以是具体类、抽象类、接口,客户端针对抽象主题角色编程
    • RealSubject(真实主题角色):实现具体业务方法的类,被代理主题角色调用
    • Proxy(代理主题角色):持有真实主题角色的引用,在调用真实主题角色的具体业务方法之前或者之后添加其它操作
  • 客户端面对抽象主题角色编程,调用抽象主题角色实际上调用的是代理主题角色,代理主题角色调用的是真实主题角色的方法,并在调用真实主题角色之前或者之后添加其他操作

核心代码

  • 抽象主题角色
  • 真实主题角色
  • 代理主题角色
  • 客户端

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档