美文网首页
设计模式之代理模式(Proxy Pattern)

设计模式之代理模式(Proxy Pattern)

作者: 新生代农民工No1 | 来源:发表于2021-05-30 20:49 被阅读0次

代理模式简介

代理模式(Proxy Pattern)是结构型模式,这种模式为其他对象提供一种代理以控制对这个对象的访问,

为什么使用代理模式

  • 重用: 为了某个功能或者类可重用性;
  • 职责清晰: 保持原有的职责;
  • 可靠性: 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,或者起到控制的作用;

组件

  • 抽象主题(Subject): 声明真实对象和代理对象的共同接口,使用目标对象的地方都可以使用代理对象;
  • 真实主题(RealSubject): 也称委托类,定义了代理对象所代表的真实实体
  • 代理(Proxy): 也称委托类、代理类。代理对象内部含有目标对象的引用,从而可以在任何时候操作目标对象;代理对象提供一个与目标对象相同的接口,以便可以在任何时候替代目标对象。代理对象通常在客户端调用传递给目标对象之前或之后,执行某个操作,而不是单纯地将调用传递给目标对象
    代理模式

总结

一个代理类可以代理多个被委托者或被代理者,因此一个代理类具体代理哪个具体主题角色,是由场景类决定的。最简单的情况是一个主题类和一个代理类。通常情况下,一个接口只需要一个代理类,具体代理哪个实现类有高层模块决定。

代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后对返回结果的处理等。代理类本身并不真正实现服务,而是通过调用委托类的相关方法,来提供特定的服务。

注意事项

  • 和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。
  • 和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制。

相关文章

网友评论

      本文标题:设计模式之代理模式(Proxy Pattern)

      本文链接:https://www.haomeiwen.com/subject/awjmsltx.html