概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘录模式。 定义 备忘录模式(Memento Pattern):在不破坏封装的前提下, ...
分类:
其他好文 时间:
2016-06-19 12:56:16
阅读次数:
194
备忘录模式:保存一个对象的某个状态,以便在适当的时候恢复对象。 例子: 测试结果: 我们在不破坏封装的前提下,捕获了Adventor内部的状态state,并把这个状态保存在Memento中,通过一个MementoManager来管理Memento。在Adventor类中的saveStateToMem ...
分类:
其他好文 时间:
2016-06-17 23:55:36
阅读次数:
141
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式...
分类:
其他好文 时间:
2016-06-16 14:45:14
阅读次数:
176
备忘录模式顾名思义就是一种能有备忘作用的设计模式,其目的是在对象外部保存其在某一时刻的状态信息,并且在任何需要的时候,都可以通过备忘录中保存的状态数据恢复对象在当时情形下的状态。 备忘录模式旨在对象的外部保存其状态。因此,对于备忘录对象将会有一个维护者 MementoManager 对象,用于维护对 ...
分类:
其他好文 时间:
2016-06-14 22:17:41
阅读次数:
224
备忘录模式 备忘录模式其实就是给我们的应用程序一次撤销的机会。使用过word的人肯定会知道伟大的“Ctrl+Z”,用过PS的人更是不会忘记,应该来说基本上所有的带编辑功能的软件毫无例外都提供了撤销的功能,撤销功能给了我们1次或N次返回的机会,准确地说应该是恢复之前状态的机会。我们自己开发的软件有时候 ...
分类:
其他好文 时间:
2016-06-06 06:47:48
阅读次数:
166
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态 类图: 结构: 发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。 备忘录:负责存储发起人对象的内部状态,在需要的时候提供发起人需要的内部 ...
分类:
其他好文 时间:
2016-06-01 23:14:29
阅读次数:
256
1 using System; 2 3 namespace Memento 4 { 5 /// <summary> 6 /// 作者:bzyzhang 7 /// 时间:2016/5/29 6:56:24 8 /// 博客地址:http://www.cnblogs.com/bzyzhang/ 9 / ...
分类:
其他好文 时间:
2016-05-29 07:27:34
阅读次数:
192
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 1 namespace DesignModel.备忘录模式 2 { 3 class Order 4 { 5 public string State { get; se ...
分类:
其他好文 时间:
2016-05-28 19:03:20
阅读次数:
188
备忘录模式: 又叫做快照模式或Token模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 角色: 1.创建者:负责创建一个备忘录,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。发起人可以根据需要决定备忘录存储自己 ...
分类:
Web程序 时间:
2016-05-28 18:55:33
阅读次数:
182
使用备忘录模式(Memoization Pattern)提高性能 这个模式说白了,就是将需要进行大量计算的结果缓存起来,然后在下次需要的时候直接取得就好了。因此,底层只需要使用一个Map就够了。 但是需要注意的是,只有一组参数对应得到的是同一个值时,该模式才有用武之地。 在很多算法中,典型的比如分治 ...
分类:
编程语言 时间:
2016-05-27 14:19:47
阅读次数:
206