Java设计模式(21)——行为模式之备忘录模式(Memento)
2017-11-01 16:25
633 查看
一、概述
概念UML简图
角色
根据下图得到角色
备忘录角色(Memento)、发起人角色(Originator)、负责人角色(Caretaker)
二、实践
使用白箱实现,给出角色的代码:发起人
/** * 发起者 * * @author Administrator **/ public class Originator { /** * 发起者想要保存的状态 */ private String state; public String getState() { return state; } public void setState(String state) { this.state = state; } /** * 返回备忘录角色的工厂方法 * @return 备忘录角色 */ public Memento createMemento() { return new Memento(state); } public void restoreMemento(Memento m) { this.state = m.getState(); } }
备忘录
/** * 备忘录角色 * * @author Administrator **/ public class Memento { private String state; public String getState() { return state; } public void setState(String state) { this.state = state; } public Memento(String state) { this.state = state; } }
负责人
/** * 负责人 * * @author Administrator **/ public class Caretaker { private Memento memento; public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } }
客户端
/** * 客户端 * @author Administrator **/ public class Client { private static Originator originator = new Originator(); private static Caretaker caretaker = new Caretaker(); public static void main(String[] args) { // 改变发起人状态 originator.setState("new"); // 创建备忘录并由负责人保存 caretaker.setMemento(originator.createMemento()); // 修改发起人状态 originator.setState("show"); System.out.println(originator.getState()); // 恢复状态 originator.restoreMemento(caretaker.getMemento()); System.out.println(originator.getState()); } }
三、改进与思考
这里就不再展开黑箱实现了,给出《Java与模式》中的实现方案一些实际运用
例如WEB运用中输入表单的时候可以通过备忘录模式进行一些表单数据的回显。
相关文章推荐
- java 设计模式 行为模式 -Memento(备忘录模式)
- Java设计模式十五:备忘录模式(Memento)
- JAVA--备忘录模式(Memento)--设计模式十九
- Java开发中的23种设计模式详解----备忘录模式(Memento)
- Java设计模式(15)备忘录模式(Memento模式)
- java设计模式19——备忘录模式(Memento)
- 设计模式(十八)----- 备忘录模式(Memento)----(JAVA版)
- 行为设计模式---备忘录模式(Memento)
- java设计模式十六:--Memento(备忘录模式)
- java设计模式十六--Memento(备忘录模式)
- java设计模式(十八)——备忘录模式(Memento)
- JAVA设计模式(20):行为型-备忘录模式(Memento)
- Java设计模式之备忘录模式(Memento模式)介绍
- java23中设计模式——行为模式——Memento(备忘机制)
- java设计模式-备忘录模式(Memento)
- Java开发中的23种设计模式之十九:备忘录模式(Memento)
- Java设计模式——备忘录模式(Memento)
- Java设计模式之--备忘录模式(Memento)
- [设计模式](十二):备忘录模式(Memento)|状态模式(State) - (两种类状态行为模式)
- JAVA设计模式(20):行为型-备忘录模式(Memento)