结构型模式 代理模式.pptVIP

  • 1
  • 0
  • 约4.45千字
  • 约 33页
  • 2020-08-15 发布于天津
  • 举报
结构型模式 - 代理模式 本章教学内容 ? 代理模式 ? 模式动机与定义 ? 模式结构与分析 ? 模式实例与解析 ? 模式效果与应用 ? 模式扩展 代理模式 ? 模式动机 ? 在某些情况下, 一个客户不想或者不能直接引 用一个对象,此时可以通过一个称之为“代理” 的第三者来实现间接引用 。代理对象可以 在客 户端和目标对象之间起到中介的作用 ,并且可 以 通过代理对象去掉客户不能看到的内容和服 务或者添加客户需要的额外服务 。 代理模式 ? 模式动机 代理模式 ? 模式动机 代理模式 ? 模式动机 ? 通过 引入一个新的对象 (如小图片和远程代理 对象) 来实现对真实对象的操作或者将新的对 象作为真实对象的一个替身 ,这种实现机制即 为代理模式, 通过引入代理对象来间接访问一 个对象 ,这就是代理模式的模式动机。 代理模式 ? 模式定义 ? 代理模式 (Proxy Pattern) :给某一个对象 提供 一个代理 ,并 由代理对象控制对原对象的引用 。 代理模式的英文叫做 Proxy 或 Surrogate ,它是 一种 对象结构型模式 。 代理模式 ? 模式定义 ? Proxy Pattern: Provide a surrogate or placeholder for another object to control access to it. ? Frequency of use: medium high 代理模式 ? 模式结构 preRequest(); realSubject.request(); postRequest(); realSubject Subject + request () ... Proxy - realSubject : RealSubject + + + preRequest () request () postRequest () ... RealSubject + request () ... Client 代理模式 ? 模式结构 ? 代理模式包含如下角色: ? Subject: 抽象主题角色 ? Proxy: 代理主题角色 ? RealSubject: 真实主题角色 代理模式 ? 模式分析 ? 代理模式示意结构图比较简单,一般可以简化为如下图所示,但 是在现实中要复杂很多。 接口 代理类 实现类 实现 实现 调用 代理模式 ? 模式分析 ? 典型的代理类实现代码: public class Proxy implements Subject { private RealSubject realSubject = new RealSubject(); public void preRequest() {…...} public void request() { preRequest(); realSubject.request(); postRequest(); } public void postRequest() {……} } 代理模式 ? 代理模式实例与解析 ? 实例一:论坛权限控制代理 ? 在一个论坛中已注册用户和游客的权限不同,已注册的用 户拥有发帖、修改自己的注册信息、修改自己的帖子等功 能;而游客只能看到别人发的帖子,没有其他权限。使用 代理模式来设计该权限管理模块。 ? 在本实例中我们使用代理模式中的保护代理,该代理用于 控制对一个对象的访问,可以给不同的用户提供不同级别 的使用权限。 代理模式 ? 代理模式实例与解析 ? 实例一:论坛权限控制代理 permission PermissionProxy - - permission level : RealPermission : int = new RealPermission() = 0 + + + + + modifyUserInfo () viewNote () publishNote () modifyNote () setLevel (int level) : void : void : void : void : void RealPermission + + + + + modifyUserInfo () viewNote () publishNote () modifyNote () setLevel (int level) ... : void : void : void : void : void AbstractPermission + + + + + modifyUserInfo () viewNote () publishNote () modifyNote () setLevel (int level) : void : void : void : void :

文档评论(0)

1亿VIP精品文档

相关文档