设计模式结构性:代理模式

电子说

1.3w人已加入

描述

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

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。

在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

结构图

控制系统

角色与理解

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

核心代码

  • 抽象主题角色

控制系统

  • 真实主题角色

控制系统

  • 代理主题角色

控制系统

  • 客户端

控制系统

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分