首页 > 其他 > 详细

设计模式——代理模式

时间:2020-03-14 11:17:38      阅读:66      评论:0      收藏:0      [点我收藏+]

一、概念:代理模式为其他对象提供一种代理以控制对这个对象的访问。(在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。)

二、UML示意图:

技术分享图片

 

Subject类是一个抽象类,里面有抽象方法Operation(),RealSubject继承Subject类并实现Operation()方法,但有时候程序员可能会想要调用这个Operation()之前做一些权限控制,或者说预处理,这时候可以用同样继承于Subject类的Proxy类,Proxy对象内部会有一个RealSubject对象,当调用Operation()方法时Proxy对象会调用这个RealSubject对象的Operation()方法,并在调用它之前或者之后做一些程序员想要做的额外任务。 

三、优缺点

优点:

  • 职责清晰。真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。降低了耦合度。
  • 代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用。
  • Client可以针对Subject类进行编程,无需关心用了哪个Proxy类或者是RealSubject类,当需要增加新的Proxy类或者更换另一个Proxy类时,无需更改原代码,符合开闭原则。

缺点:

  • 由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢,例如保护代理。
  • 实现代理模式需要额外的工作,而且有些代理模式的实现过程较为复杂,例如远程代理。

 

设计模式——代理模式

原文:https://www.cnblogs.com/winsons/p/12490347.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!