1700470804
1700470805
public class Client{
1700470806
1700470807
public static void main(String[]args){
1700470808
1700470809
//定义出发起人
1700470810
1700470811
Originator originator=new Originator();
1700470812
1700470813
//定义出备忘录管理员
1700470814
1700470815
Caretaker caretaker=new Caretaker();
1700470816
1700470817
//创建一个备忘录
1700470818
1700470819
caretaker.setMemento(originator.createMemento());
1700470820
1700470821
//恢复一个备忘录
1700470822
1700470823
originator.restoreMemento(caretaker.getMemento());
1700470824
1700470825
}
1700470826
1700470827
}
1700470828
1700470829
备忘录模式就是这么简单,真正使用备忘录模式的时候可比这复杂得多。
1700470830
1700470831
1700470832
1700470833
1700470835
设计模式之禅 24.3 备忘录模式的应用
1700470836
1700470837
由于备忘录模式有太多的变形和处理方式,每种方式都有它自己的优点和缺点,标准的备忘录模式很难在项目中遇到,基本上都有一些变换处理方式。因此,我们在使用备忘录模式时主要了解如何应用以及需要注意哪些事项就成了。
1700470838
1700470839
24.3.1 备忘录模式的使用场景
1700470840
1700470841
❑需要保存和恢复数据的相关状态场景。
1700470842
1700470843
❑提供一个可回滚(rollback)的操作;比如Word中的CTRL+Z组合键,IE浏览器中的后退按钮,文件管理器上的backspace键等。
1700470844
1700470845
❑需要监控的副本场景中。例如要监控一个对象的属性,但是监控又不应该作为系统的主业务来调用,它只是边缘应用,即使出现监控不准、错误报警也影响不大,因此一般的做法是备份一个主线程中的对象,然后由分析程序来分析。
1700470846
1700470847
❑数据库连接的事务管理就是用的备忘录模式,想想看,如果你要实现一个JDBC驱动,你怎么来实现事务?还不是用备忘录模式嘛!
1700470848
1700470849
1700470850
1700470851
1700470852
设计模式之禅 24.3.2 备忘录模式的注意事项
1700470853
[
上一页 ]
[ :1.700470804e+09 ]
[
下一页 ]