备忘录模式 memento
场景:
录入大批人员资料。正在录入当前人资料时,发现上一个人录错了,此时需要恢复上一个人的资料,再进行修改。
Word文档编辑时,忽然电脑死机或断电,再打开时,可以看到word提示你恢复到以前的文档
管理系统中,公文撤回功能。公文发送出去后,想撤回来。
核心
就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。
结构:
源发器类 Originator 保存对象内部的状态
备忘录类 Memento 保存对象内部状态的拷贝
负责人类 CareTaker 存储备忘录的
课堂代码的类图
源发器类
备忘录类
构造器
源发器类中还需要加两个内容
进行备忘操作,并返回备忘录对象
进行数据恢复,恢复成指定备忘录对象的值
负责人类
管理备忘录对象
提供一个备忘录对象
测试
设置备忘点!
备忘完了之后对对象做一些修改
恢复到第一次的对象
要设置多个备忘点,通过容器来做
负责人类
负责保存好的备忘录对象。
可以通过增加容器,设置多个“备忘点”
备忘点较多时:
将备忘录压栈
将多个备忘录对象,序列化和持久化
开发中常见的应用场景:
棋类游戏中的,悔棋
普通软件中的,撤销操作
数据库软件中的,事务管理中的,回滚操作
Photoshop软件中的,历史记录
GOF23中设计模式一览表
创建型模式:都是用来帮助我们创建对象的!
单例模式
保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。
工厂模式
简单工厂模式
用来生产同一等级结构中的任意产品。(对于增加新的产品,需要修改已有代码)
工厂方法模式
用来生产同一等级结构中的固定产品。(支持增加任意产品)
抽象工厂模式
用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)
建造者模式
分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。
原型模式
通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式
结构型模式:关注对象和类的组织
行为型模式汇总:
关注系统中对象之间的相互交互,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,共有11种模式。