取消改变基本数据——应用备忘录模式

模式应用背景

在机房收费系统中,有一个改动基本数据的窗口:

由于在文本框中改动数据之后。仅仅要不点击改动button。就不会更新到数据库中。所以,个人版中这里的取消button是从数据库读取原始数据,再又一次载入到窗口上来。这次合作的时候,增加了备忘录模式又一次处理这个取消button。

怎样增加模式

基本思路是这种:

1。将要保存的BaseData(基本数据类的实体名)作为成员变量放到备忘录类里面。并在备忘录类初始化的时候传入要保存的基本数据。

2,定义发起者用来创建和回恢复备忘录的数据,假设点击了取消后。就用这个类来恢复数据备忘录中数据并返回

3,利用管理者来管理产生的备忘录

类图例如以下:

使用备忘录模式的优点:

1,将基本数据的存取细节封装起来,储存在BaseDataMemento中,实现了基本数据的储存和恢复相分离;

2,避免了频繁訪问数据库读取基本数据

对备忘录模式的缺陷考虑

由于备忘录模式是将要保存对象封装到一个备忘录对象中,所以当假设要保存的当数据为大,这一次到内存,资源经常食用肯定比读取资源数据与数据库的连接要消耗更多更好。权衡两种实现“取消”方法,这一次,我们用这个模式在必要时考虑。

时间: 2024-11-14 00:19:36

取消改变基本数据——应用备忘录模式的相关文章

取消基本数据的修改——备忘录模式的应用

模式应用背景 在机房收费系统中,有一个修改基本数据的窗体: 因为在文本框中修改数据之后,只要不点击修改按钮,就不会更新到数据库中,所以,个人版中这里的取消按钮是从数据库读取原始数据,再重新加载到窗体上来.这次合作的时候,加入了备忘录模式重新处理这个取消按钮. 如何加入模式 基本思路是这样的: 1,将要保存的BaseData(基本数据类的实体名)作为成员变量放到备忘录类里面,并在备忘录类初始化的时候传入要保存的基本数据. 2,定义发起者用来创建和回恢复备忘录的数据,如果点击了取消后,就用这个类来恢

设计模式之备忘录模式(Memento)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些具体的类的信息封装起来.第二,它们隐藏了这些类的实例是如何被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以

设计模式解密(17)- 备忘录模式

1.简介 定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样就可以将该对象恢复到原先保存的状态. 解释:也就是说,不破坏源数据的情况下,将源数据进行一次或者多次的备份. 本质:保存和恢复内部状态. 英文:Memento 类型:行为型 2.类图及组成(白箱实现与黑箱实现) 前言:备忘录模式按照备忘录角色的形态不同,分为白箱实现与黑箱实现,两种模式与备忘录角色提供的接口模式有关: 由于备忘录角色构成不同,所以这里拆分成两种类图分别解释,对比一下,就能明白: 白箱实

Java设计模式(十) 备忘录模式 状态模式

(十九)备忘录模式 备忘录模式目的是保存一个对象的某个状态,在适当的时候恢复这个对象. class Memento{ private String value; public Memento(String value){ this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } class Storage

设计模式之备忘录模式

定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样就可以将该对象恢复到原先保存的状态 类图: 结构: 发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据. 备忘录:负责存储发起人对象的内部状态,在需要的时候提供发起人需要的内部状态. 管理角色:对备忘录进行管理,保存和提供备忘录. 优点: 当发起人角色中的状态改变时,有可能这是个错误的改变,我们使用备忘录模式就可以把这个错误的改变还原. 备份的状态是保存在发起人角色之外的,

设计模式之行为型模式—— 3.7 备忘录模式

<?php /**  * 3.7 备忘录模式  *  定义:  *  在不破坏封装性的前提下,捕获一个对象的内  *  部状态,并在该对象之外保存这个状态,这样  *  以后就可将该对象恢复到原先保存的状态.  *  * 角色:  *  1. 发起人(Originator)类  *  职责:负责创建一个备忘录Memento,用以  *    记录当前时刻它的内部状态,并可  *    使用备忘录恢复内部状态.Originator  *    可根据需要决定Memento存储它的哪  *    些

IOS设计模式之四(备忘录模式,命令模式)

本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么错误,请与我联系谢谢. 备忘录(Memento)模式 备忘录模式快照对象的内部状态并将其保存到外部.换句话说,它将状态保存到某处,过会你可以不破坏封装的情况下恢复对象的状态,也就是说原来对象中的私有数据仍然是私有的. 如何使用备忘录模式 在ViewController.m中增加

《JAVA与模式》之备忘录模式

备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式. 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象.备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态.备忘录模式常常与命令模式和迭代子模式一同使用. 备忘录模式的结构 备忘录模式的结构图如下所示 备忘录模式所涉及的角色有三个:备忘录(Memento)角色.发起人(Originator)角

设计模式(十七):备忘录模式

一.概述 现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了.而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作. 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 二.结构类图 三.应用实例 还是用<大话设计模式>的游戏例子,游戏角色有攻击力和防御力,在