二十三种设计模式PPT合集.ppt

  1. 1、本文档共220页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * 1)透明式:子结点集合的管理方法在抽象类或接口中定义,向客户端隐藏树叶结点和树枝结点的区别。 缺点:虽然树枝对象还是树叶对象在客户端看来是没区别了,但是他们两者确实是有区别的。使用透明式的实现方式,就会发生这样的情况:客户端可能调用了树叶对象的子结点管理方法,使用透明式实现使得这样的错误在编译器无法被检查出来,只能延迟到运行期才会暴露出来。(说白了就是客户端可能会调到空的方法。) 2)安全式:子结点集合的管理方式只在树枝接点中定义,客户端必须明确知道当前对象到底是树枝还是树叶。 缺点:这种方式不够透明,树枝和树叶具有不同的接口,客户端就不能把它们当成同一类对象看待了。(说白了就是不能把树枝和树叶全部上转成他们的抽象类或接口。) * * * 创建模式:对类的实例化过程的抽象化 结构模式:如何将类或者对象结合在一起形成更大的结构。 行为模式:在不同的对象之间划分责任和算法的抽象化。 类模式:通过继承定义描述类之间关系,编译时建立(模板,工厂方法,适配器,解释器) 对象模式:利用组合(聚合)定义来描述对象之间的关系。运行时建立。更加动态。 命令模式的适用场合 1.使用命令模式作为“Call Back”在面向对象系统中的替代 。 2.需要在不同的时间指定请求、将请求排队。 3.系统需要支持命令的撤消(undo)。 4.如果一个系统要将系统中所有的数据更新到日志里,以便在系统崩溃时,可以根据日志里读回所有的数据更新命令,重新调用Execute()方法一条一条执行这些命令,从而恢复系统在崩溃前所做的数据更新。 5. 一个系统需要支持交易。 命令模式的优缺点 优点: 命令模式把请求一个操作的对象和知道怎么执行一个操作的对象分割开。 命令类和其他任何别的类一样,可以修改和推广。 可以把命令对象聚合在一起合成为合成命令。 由于增加新的具体命令类不影响其他的类,因此增加新的具体命令类很容易。 缺点: 适用命令模式会导致某些系统有过多的具体命令类。 命令模式总结 耦合与变化: ??? 耦合是软件不能抵御变化灾难的根本性原因。不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系。 动机(Motivate): ??? 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。 意图(Intent): ??? 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 ?????? 命令模式和其他模式的关系 与合成模式的关系: 合成模式可以应用的命令类的合成上,从几个具体命令类合成宏命令类。合成模式的简略类图如下所示: 命令模式和其他模式的关系 与备忘录模式的关系: 如果命令需要撤销和恢复功能的话,备忘录模式可以用来存储关于命令的效果状态信息,以便在撤销命令时可以撤销命令的效果。备忘录模式的简略类图如下所示: 命令模式和其他模式的关系 与原始模型模式的关系: 如果命令类带有clone()方法的话,命令就可以被复制。原始模型模式的简略类图如下图所示: 22、备忘录(Memento)模式 主讲人:何卡特 组员:庞卫巍、邓宇乐 2页 MEMENTO—同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦。 备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。 备忘录模式又叫快照模式或Token模式,是对象的行为模式[GOF95]. 备忘录对象是一个用来存储另一个对象内部状态的快照的对象。它的用意是将一个对象的状态捕捉住,并外部化,存储起来。从而可以在将来合适的时候把这个对象还原到存储起来的状态。 备忘录模式有两种实现方式:一种是白箱实现,一种是黑箱实现。 定义 1、白箱实现 ????备忘录角色的内部所存储的状态就对所有对象公开。因此这个实现叫白箱实现。 ???? 白箱实现将发起人角色的状态存储在一个大家看得到的地方,因此是破坏封装性的。但是通过程序员的自律,同样可以在一定程度上实现模式的大部分用意。因此白箱实现

文档评论(0)

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

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

1亿VIP精品文档

相关文档