设计模式之备忘录模式
2016-11-19 07:17
375 查看
备忘录模式(Memento)属于行为模式,如果一个对象在运行的过程中需要备份它的状态,就可以考虑用备忘录模式,它用一个备忘录类来存放一个对象内部对象的拷贝,目标对象也可以重新载入备忘录恢复到原来的状态。
下面是备忘录模式的C++实现,代码可到本人github网页下载:设计模式例子
下面是备忘录模式的C++实现,代码可到本人github网页下载:设计模式例子
/* * Example of 'Memento' design pattern. * Copyright (C) 2016 Leo Wang * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <iostream> using namespace std; class CMemento { public: string m_state; public: string GetState() { return m_state; }; void SetState(string state) { m_state=state; }; public: CMemento(string state) { SetState(state); }; }; class CObject { public: string m_state; public: void SetState(string state) { m_state=state; }; string GetState() { return m_state; }; void LoadMemento(CMemento* p_memento) { SetState(p_memento->GetState()); }; void SetMemento(CMemento* p_memento) { p_memento->SetState(m_state); }; CMemento CreateMemento() { return CMemento(m_state); }; }; int main() { CMemento* cp_memento=new CMemento("Hello Cat!"); CObject* cp_obj=new CObject(); cp_obj->LoadMemento(cp_memento); cout<<cp_obj->GetState()<<endl; cp_obj->SetState("Hello Dog!"); cp_obj->SetMemento(cp_memento); cout<<cp_memento->GetState()<<endl; CMemento mem=cp_obj->CreateMemento(); cout<<mem.GetState()<<endl; return 1; };
相关文章推荐
- HeadFirst 设计模式学习笔记22-- 备忘录(Memento)模式拾零
- 十八 设计模式之备忘录模式
- 设计模式学习-Memento(备忘录)
- 设计模式学习-Memento(备忘录)
- java 设计模式 学习笔记 (14) 备忘录模式
- Java设计模式-----Memento备忘录模式
- 设计模式-----备忘录模式
- 设计模式之备忘录模式
- 设计模式之备忘录模式Memento
- 设计模式--Memento 备忘录模式
- 设计模式之备忘录模式
- c++设计模式之备忘录模式
- 设计模式----Memento(备忘录)模式
- 设计模式----Memento(备忘录)
- 设计模式之Memento(备忘录)
- 设计模式学习笔记(二十)——Memento备忘录
- DOTA版设计模式——备忘录
- 设计模式-结构型模式-备忘录
- 《模式——工程化实现及扩展》(设计模式C# 版)《备忘录模式 Memento》——“自我检验"
- 深入浅出Java设计模式之备忘录模式