软件体系结构7体系结构设计模式.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件体系结构7体系结构设计模式

Proxy 意图 为其他对象提供一种代理以控制对这个对象的访问。 别名 Surrogate 动机 对一个对象进行访问控制的原因是为了在我们确实需要这个对象时才对它进行创建和初始化。 Proxy 适用性 虚代理:根据需要创建开销很大的对象的时候 保护代理:控制对原始对象的访问。保护代理用于对象应该有不同的访问权限的时候。 远程代理:为一个对象在不同的地址空间提供局部代表。 Proxy 参与者 Proxy 保存一个引用使得代理可以访问实体 控制对实体的存取,并可能负责创建和删除它 Subject 定义RealSubject和Proxy的共用接口,这样在任何使用RealSubject的地方都可以使用Proxy。 RealSubject 定义Proxy所代表的实体 Proxy 效果 Proxy模式在访问对象时引入了一定程度的间接性。根据代理的类型,附加的间接性有多种用途 Remote Proxy可以隐藏一个对象存在于不同地址空间的事实。 Virtual Proxy可以进行最优化,例如根据需要创建对象。 Protection Proxy允许在访问一个对象时有一些附件的内务处理。 Proxy 实现 Example: Printable.java Printer.java PrinterProxy.java Main.java Proxy 启发 利用代理提高处理的速度 为何要区分Proxy和RealSubject? 提高程序零件化的程度,允许各自独立修改 代理和委托 代理的能力有限 无法处理的工作就要交给RealSubject去做 各种代理 Virtual Proxy Remote Proxy Access Proxy Chapter Seven 设计模式 Command模式 对象 用对象来表示执行的操作 管理执行的操作就是管理那些对象们 对象间的组合构成新的命令 行为 Undo Clear History Command 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志以及支持可撤销的操作。 别名 动作Action;事务Transaction Command 动机 向对象提交请求,但并不知道关于被请求的操作或请求的接受者的任何信息。 命令模式将请求本身变成一个对象向未制定的应用对象提出请求。 例如:GUI中工具箱中的Button,Menu Etc. Undo,Clear操作 组合新的操作 Command 适用性 在不同的时刻制定、排列和执行请求。 支持取消操作。 Command 参与者 See Example 效果 将调用操作的对象和知道如何实现该操作的对象解耦 可以像其他的对象一样被操纵和扩展 可以将多个命令装配成一个复合的命令 新增的Command很容易,因为这无需改变已有的类 实现:Example Command:Example 一个简单的绘图软件 包 名称 说明 Command Command 表示命令的接口 Command.java Command MacroCommand 表示结合多个命令的命令的类 MacroCommand.java Drawer DrawCommand 表示点的绘制命令的类 DrawCommand.java Drawer Drawable 表示绘制对象的接口 Drawable.java Drawer DrawCanvas 表示绘制对象的类 DrawCanvas.java Main 测试用类 Main.java Command 参与者 Command:定义命令的接口。 ConcreteCommand:MacroCommand和DrawCommand。 Receiver:DrawCanvas Client:Main Invoker:Main Command 启示: ConcreteCommand永远知道Receiver 存储记录:动作以及接受者 适配器类:本例中可用适配器类 MouseAdapter WindowAdapter 上机练习: 在本例中新增一个“最后画的点”的Undo、Redo功能。 Chapter Seven 设计模式 并不是每种设计模式都会具有很广泛的应用。有的模式适用范围就很小。比如解释器模式。 因为解释器模式只适用与简单文法的解释,弊端又多,所以我就很少会用到它。 Interpreter 解释器 以类来表示语法规则 属于:类行为模式 Interpreter 意图 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该类表示来解释语言中的句子。 动机 如果一个特定类型的问题发生的频率很高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档