设计模式学习—备忘录模式(Memento Design Pattern)
2017-08-22 17:05
507 查看
一、我的理解
备忘录模式用于存储某个类在某一时刻的状态。二、实现方式
另外创建一个类Memento用于保存目标类的状态信息,然后由另一类来存储和管理这一系列保存的状态三、实例
Java实例
Originator类:原始类,对该类的状态进行保存
package com.study.dp.memento; public class Originator { private String state; public String getState() { return state; } public void setState(String state) { this.state = state; } public Memento saveStateToMemento() { return new Memento(state); } public void getStateFromMemento(Memento memento) { this.state = memento.getState(); } }Memento类:备忘录类,保存目标类的状态信息
package com.study.dp.memento; public class Memento { private String state; public Memento(String state) { super(); this.state = state; } public String getState() { return state; } }CareTaker类:备忘录管理类,存储和管理备忘录
package com.study.dp.memento; import java.util.ArrayList; import java.util.List; public class CareTaker { private List<Memento> mementoList = new ArrayList<>(); public void add(Memento state) { mementoList.add(state); } public Memento get(int index) { return mementoList.get(index); } }Demo类:测试
package com.study.dp.memento; public class Demo { public static void main(String[] args) { Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.setState("State #1"); originator.setState("State #2"); careTaker.add(originator.saveStateToMemento()); originator.setState("State #3"); careTaker.add(originator.saveStateToMemento()); originator.setState("State #4"); System.out.println("Current State: "+originator.getState()); originator.getStateFromMemento(careTaker.get(0)); System.out.println("First saved State: "+originator.getState()); originator.getStateFromMemento(careTaker.get(1)); System.out.println("Second saved State: "+originator.getState()); } }
四、应用场景
相关文章推荐
- 设计模式学习之备忘录模式(Memento,行为型模式)(19)
- 学习php设计模式 php实现备忘录模式(Memento)
- 设计模式学习—前端控制器模式(Front Controller Design Pattern)
- 设计模式学习—组合实体模式(Composite Entity Design Pattern)
- 设计模式学习—拦截过滤器模式(Intercepting Filter Design Pattern)
- 设计模式学习—责任链模式(Chain of Responsibility Design Pattern)
- 【设计模式学习笔记十九】【行为模式】【备忘录模式(Memento)】
- 设计模式学习之备忘录模式(Memento,行为型模式)(19)
- 设计模式学习之备忘录模式(Memento,行为型模式)(19)
- 设计模式学习(1)——Design Pattern List
- 设计模式学习—数据访问对象模式(Data Access Object Design Pattern)
- 设计模式学习—状态模式(State Design Pattern)
- 设计模式学习—模板模式(Template Design Pattern)
- 设计模式学习—传输对象模式(Transfer Object Design Pattern)
- 设计模式 Design Parttern ——备忘录模式Memento
- DESIGN PATTERN LEARNING(设计模式之学习总结)
- 设计模式学习—服务定位模式(Service Locator Design Pattern)
- 设计模式学习—业务代表模式(Business Delegate Design Pattern)
- 设计模式学习—MVC模式(MVC Design Pattern)
- 设计模式学习—代理模式(Proxy Design Pattern)