设计模式:备忘录模式
来源:互联网 发布:逻辑推理软件 编辑:程序博客网 时间:2024/05/16 00:09
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
备忘录使用:Memento适用于功能比较复杂,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一部分时,Originator可以根据保存的Memento信息还原到前一状态。如果在某个系统中使用命令模式时,需要实现命令的撤销功能,那么命令模式可以使用备忘录模式来存储可撤销操作的状态。有时一些对象的内部信息必须保存在对象以外的地方,但是必须要由对象自己读取,这时,使用备忘录可以把复杂的对象内部信息对其他对象屏蔽起来,从而可以恰当地保持封装的边界。而且当角色的状态改变的时候,有可能这个状态无效,这时候就可以使用暂时存储起来的备忘录将状态复原。
using System;public class Program{ class Originator { private string state; public string State { get { return state; } set { state = value; } } public Memento CreateMemento() { return (new Memento(state)); } public void SetMemento(Memento memento) { state = memento.State; } public void Show() { Console.WriteLine("State=" + state); } } class Memento { private string state; public Memento(string state) { this.state = state; } public string State { get { return state; } } } class Caretaker { private Memento memento; public Memento Memento { get { return memento; } set { memento = value; } } } static void Main(string[] args) { Originator o = new Originator(); o.State = "On"; o.Show(); Caretaker c = new Caretaker(); c.Memento = o.CreateMemento(); o.State = "Off"; o.Show(); o.SetMemento(c.Memento); o.Show(); Console.Read(); }}
阅读全文
0 0
- 设计模式-----备忘录模式
- 设计模式 备忘录模式
- 【设计模式】备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式 - 备忘录模式
- 设计模式:备忘录模式
- 【设计模式】备忘录模式
- 设计模式-备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- 设计模式--备忘录模式
- 设计模式-备忘录模式
- 设计模式-备忘录模式
- 【设计模式】备忘录模式
- 设计模式-备忘录模式
- ios 11 定位权限增加仅在使用期间使用方法
- CSAPP Note chap2
- Redis基本知识点
- BRD、MRD、PRD与FSD
- 程序员的提升空间
- 设计模式:备忘录模式
- input搜索提示功能--基于jquery框架
- 设计模式的艺术之道--适配器模式
- 轻松看懂机器学习十大常用算法
- JAVA不可变类(immutable)机制与String的不可变性
- Python 基础学习---读取json文件
- python切割图片以及转8位图
- 嵌入式程序员面试基本习题
- cocos2dx Texture、SpriteFrame、Sprite的区别