论坛
Ai合集
开源相关
教程
论坛
Ai合集
开源相关
教程
游客
注册
登录
DesignPattern Java 23种设计模式全归纳
1. 观察者模式
2. 工厂模式
1、静态工厂模式
2、简单工厂模式(店里买肉夹馍)
3、工厂方法模式(开分店)
4、抽象工厂模式(使用官方提供的原料)
3. 单例设计模式
4. 策略模式
5. 适配器模式
6. 命令模式
7. 装饰者模式
8. 外观模式
9. 模板方法模式
10. 状态模式
11. 建造者模式
12. 原型模式
13. 享元模式
14. 代理模式
15. 桥接模式
16. 组合模式
17. 迭代器模式
18. 中介者模式
19. 备忘录模式
20. 解释器模式
21. 责任链模式
22. 访问者模式
wiki.1024.pm IT论坛
-
+
首页
19. 备忘录模式
### 19. 备忘录模式 > 保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 - **主要解决**:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。 以使用备忘录为例,最小单元步骤: - 1、创建 备忘录 Memento 类。 ```java public class Memento { private String state; public Memento(String state) { this.state = state; } public String getState() { return state; } public void setState(String state) { this.state = state; } } ``` - 2、创建 Originator 类。 ```java public class Originator { private String state; public String getState() { return state; } public void setState(String state) { this.state = state; } public Memento setSateToMemento() { return new Memento(state); } public String getStateFromMemento(Memento memento) { return memento.getState(); } } ``` - 3、创建 CareTaker 类。 ```java public class CareTaker { private List<Memento> mementoList = new ArrayList<Memento>(); public void add(Memento memento) { mementoList.add(memento); } public Memento get(int index) { return mementoList.get(index); } } ``` - 4、使用 CareTaker 和 Originator 对象。 ```java // 管理者 CareTaker careTaker = new CareTaker(); Originator originator = new Originator(); originator.setState("State #1"); originator.setState("State #2"); // 保存状态 careTaker.add(originator.setSateToMemento()); originator.setState("State #3"); // 保存状态 careTaker.add(originator.setSateToMemento()); originator.setState("State #4"); Log.e("---", "Current State: " + originator.getState()); // 得到保存的状态 String fromMemento1 = originator.getStateFromMemento(careTaker.get(0)); Log.e("---", "First Saved State: " + fromMemento1); String fromMemento2 = originator.getStateFromMemento(careTaker.get(1)); Log.e("---", "Second Saved State: " + fromMemento2); /* * /---: Current State: State #4 * /---: First Saved State: State #2 * /---: Second Saved State: State #3 */ ```
1024wiki
2026年8月11日 13:43
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
分享
链接
类型
密码
更新密码
有效期
Markdown文件
Word文件
PDF文档(打印)