2018-03-06

2018-03-06  本文已影响0人  叶子酱hi

代理模式

代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或者访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式使用目的不同,代理模式可以分为多种类型,如:保护代理、远程代理,虚拟代理,缓冲代理等。

代理模式概述

代理模式: 给某一个对象提供一个代理或占位符,并有代理对象来控制原对象的访问。Proxy Pattern Provide a surrogate or placeholder for another object to control

代理模式结构与实现

代理模式的结构比较简单,其核心是代理类,为了让客户端能够一致性的对待真实对象和代理对象。结构如下:、
[图片上传失败...(image-132066-1520307438615)]
如图,代理模式包含三个角色:

应用实例

某软件公司承接了某信息咨询公司的收费商务信息查询系统的开发任务,需求如下:

  1. 在进行商务信息查询之前客户需要通过身份验证,只有合法用户才能够使用该查询系统。
  2. 在进行商务信息查询时系统需要记录查询日志,以便根据查询次数收取相应费用。一般月结。

通过分析,可以使用简介访问的方式实现,如下类图:
[图片上传失败...(image-1d48c3-1520307438616)]
客户端对象通过代理对象简介访问具有商务信息查询功能的真实对象,代理对象中增加身份验证和日志记录等功能。其结构图如下:
[图片上传失败...(image-8771eb-1520307438616)]
图中Searcher充当抽象角色,RealRearcher充当真实主题角色,ProxySearcher充当代理主题角色。
上面是是保护代理和只能引用代理的实例实例。

其他代理模式的应用

代理模式总结

模式优点:

模式适用场景

上一篇 下一篇

猜你喜欢

热点阅读