设计模式之第17章-备忘录模式(Java实现) 好男人就是我,我就是曾小贤.最近陈赫和张子萱事件闹得那是一个沸沸扬扬.想想曾经每年都有爱情公寓陪伴的我现如今过年没有了爱情公寓总是感觉缺少点什么.不知道你们可曾记得爱情公寓里的一个经典的桥段~每次关谷和唐悠悠吵架的时候,总是可以进行“存档”,先干其他的事情,而后有时间的时候再继续“读档”,这是多么好的一个技能啊,想想吧,每次吵架,存档后可以做其他事情进行冷静一下,然后读档的时候已经冷静好了,是不是会清醒很多呢,是不是就不会有那么多的误会无法解除了呢…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8176974.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第十个模式--备忘录模式,先从名称上来看.备忘录模式可以理解为对某个对象的状态进行保存,等到需要恢复的时 候,可以从备忘录中进行恢复.生活中这样的例子也能经常看到,如备份电话通讯录.操作系统.数据库等.如果我们想恢复对象的状态,那么我们可 能首先想到的是把对象保存下来,但是这样会破坏对象的封装性.因为对象有状态有操…
一.概述 概念 UML简图 角色 根据下图得到角色 备忘录角色(Memento).发起人角色(Originator).负责人角色(Caretaker) 二.实践 使用白箱实现,给出角色的代码: 发起人 /** * 发起者 * * @author Administrator **/ public class Originator { /** * 发起者想要保存的状态 */ private String state; public String getState() { return state;…
概述: 我们玩单机游戏的时候总会遇到老婆大人的各位事情,一会去买瓶醋了,一会去打个酱油了,会耽误我们玩游戏的进程,但是此时我们能有“保存游戏”这个宝贝,我们的主基地不会在我们打酱油的时候被对手拆掉. 这“保存游戏”的功能其实就是备忘录模式的很好应用,她是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可以就该对象恢复到原先保存的状态.这个其实也是我们的redo,undo所采用的模式. 类图和实例: 简单的模式实例,来源于 网上: #include <iostr…
1.讲解备忘录模式 备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式,是GoF的23种设计模式之一,属于行为模式. 1.1定义 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 1.2涉及角色 1.Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态.Originator可以根据需要决定Memen…
一.引言   今天我们开始讲"行为型"设计模式的第十个模式,该模式是[备忘录模式],英文名称是:Memento Pattern.按老规矩,先从名称上来看看这个模式,个人的最初理解就是对某个对象的状态进行保存,等到需要恢复的时候,可以从备忘录中进行恢复.生活中这样的例子也能经常看到,如备份电话通讯录,备份操作操作系统,备份数据库等.如果我们想恢复对象的状态,那么我们可能首先想到的是把对象保存下来,但是这样会破坏对象的封装性.因为对象有状态有操作,如果我们为了保存对象而留着原来的对象,做一…
一.引言 今天我们开始讲“行为型”设计模式的第十个模式,该模式是[备忘录模式],英文名称是:Memento Pattern.按老规矩,先从名称上来看看这个模式,个人的最初理解就是对某个对象的状态进行保存,等到需要恢复的时候,可以从备忘录中进行恢复.生活中这样的例子也能经常看到,如备份电话通讯录,备份操作操作系统,备份数据库等.如果我们想恢复对象的状态,那么我们可能首先想到的是把对象保存下来,但是这样会破坏对象的封装性.因为对象有状态有操作,如果我们为了保存对象而留着原来的对象,做一个深拷贝,那么…
[状态模式] No1: Wifi设置界面是一个叫做WifiSetting的Fragment实现的 No2: 在不同的状态下对于扫描Wifi这个请求的处理是完全不一样的.在初始状态下扫描请求被直接忽略,在驱动加载中状态下Wifi扫描请求被添加到延迟处理的消息列表,在驱动加载完成状态下扫描Wifi的请求直接被处理. 它的实现原理就是将请求的处理封装到状态类中,在不同的状态类中对同一个请求进行不同的处理 [责任链模式] No3: 最大缺点:对链中请求处理者的遍历,如果处理者太多,那么遍历必定会影响性能…
参考地址:http://www.runoob.com/design-pattern/memento-pattern.html 对原文总结调整,以及修改代码以更清晰的展示: 备忘录模式(快照模式):      定义:顾名思义,备忘录模式是在不破坏封装性的前提下,通过备忘录对象,记录一个对象的内部状态,并在该对象之外保存这个状态.   应用场景: 2.打游戏时的存档. 3.Windows 里的 ctri + z. 4.IE 中的后退. 4.数据库的事务管理. 图:日后再画 代码: 1.状态记录类:…
中介者 中介者模式:使用中介者来集中相关对象之间复杂的沟通方式和控制方式. Bob有一个自动屋,当他的闹钟响了只有,闹钟会告诉咖啡壶开始煮咖啡.后来客户不断的提出许多新需求:周末不要提供咖啡.下班后需要扫地机器人扫地等.这个时候咖啡壶需要接受闹钟并检查日期,而日历需要接受闹钟的询问并告诉闹钟是否周末,扫地机器人需要接受闹钟并检查是否下班时间等等一系列操作. 想要持续地追踪每个对象的每个规则,以及众多对象之间彼此错综复杂的关系对于设计来说不满足单一职责,同时可能会相互引用造成系统复杂.这个时候就可…