当前位置: 首页 > news >正文

建设银行公积金网站提示udun手机版百度入口

建设银行公积金网站提示udun,手机版百度入口,深圳新闻网我说深圳事,汕头企业自助建站系统备忘录模式 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 涉及到的角色描述 originator(发起人): 负责创建一个备忘录memento,用来记录…

备忘录模式

  在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

涉及到的角色描述

  originator(发起人):   负责创建一个备忘录memento,用来记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。originator可根据需要决定memento存储它的哪些内部状态

  memento(备忘录): 负责存储originator的内部状态,并可防止originator以外的其他对象访问备忘录memento。备忘录有两个接口,caretaker只能看到备忘录的窄接口,他只能将备忘录传递给其他对象。originator能够看到一个宽接口,允许它访问返回先前状态所需的所有数据。

  caretaker(管理者): 负责保存好备忘录memento,不能对备忘录的内容进行操作或检查。

优点: 

  1、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。

  2、实现了信息的封装,使得用户不需要关心状态的保存细节。

缺点:

  消耗资源。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。

使用场景: 

  1、需要保存/恢复数据的相关状态场景。

  2、提供一个可回滚的操作。

具体代码实现

  创建备忘录

package com.chenpt.designModel.mementoModel;/*** @Author: chen* @Description: 备忘录类* @Date: created in 2018/8/28* @Modified By:*/
public class Memento {private String state;//构造方法将相关数据导入Memento(String state){this.state = state;}//需要保存的数据属性,可以是多个public String getState() {return state;}}

  创建发起人

package com.chenpt.designModel.mementoModel;/*** @Author: chen* @Description: 发起人* @Date: created in 2018/8/28* @Modified By:*/
public class Originator {private String state;//需要保存的属性public String getState() {return state;}public void setState(String state) {this.state = state;}/*** 创建备忘录,将当前需要保存的数据导入并实例化一个memento对象* @return*/public Memento setStateToMemento(){return new Memento(state);}/*** 恢复备忘录,将memento导入并将相关数据恢复* @param memento*/public void getStateFromMemento(Memento memento){state = memento.getState();}/*** 数据展示*/public void show(){System.out.println(state);}
}

  创建管理者

package com.chenpt.designModel.mementoModel;/*** @Author: chen* @Description: 管理者* @Date: created in 2018/8/28* @Modified By:*/
public class CareTaker {private Memento memento;//得到或设置备忘录public Memento getMemento() {return memento;}public void setMemento(Memento memento) {this.memento = memento;}
}

  客户端

package com.chenpt.designModel.mementoModel;/*** @Author: chen* @Description:* @Date: created in 2018/8/28* @Modified By:*/
public class MainTest {public static void main(String[] a){Originator originator = new Originator();originator.setState("on");originator.show();CareTaker careTaker = new CareTaker();careTaker.setMemento(originator.setStateToMemento());originator.setState("off");originator.show();originator.getStateFromMemento(careTaker.getMemento());originator.show();}}
//执行结果
on
off
on

  

 

转载于:https://www.cnblogs.com/chenpt/p/9547988.html

http://www.lbrq.cn/news/2680777.html

相关文章:

  • 动态网站设计简单吗首页关键词优化公司
  • 做网站 业务流程图宁波网络推广联系方式
  • 当涂网站建设百度官方推广
  • python 网站开发入门廊坊百度快照优化哪家服务好
  • 网站的查询系统怎么做成全视频免费观看在线看
  • 企业网站建设google 浏览器
  • 淄博哪里有做网站的windows优化大师要钱
  • 新郑市网站建设定制开发网络营销推广方案
  • 在国外网站做中国旅游推广广州网站推广排名
  • 信息化建设包括网站建设北京刚刚宣布比疫情更可怕的事情
  • 郑州交友网站建设人民日报客户端
  • 微信小程序开发要多少钱中央网站seo
  • 西安网站建设开发制作全网最全搜索引擎app
  • 免费网络教学平台河南做网站优化
  • wordpress发帖插件刷神马网站优化排名
  • 做app网站需要什么工具大全
  • 开发网站需要多少人百度网络营销的概念
  • 餐饮公司网站制作网络营销与直播电商
  • 广元园区建设投资有限公司网站谷歌网页版入口在线
  • 温州网站推广外包小程序推广
  • 推荐 网页游戏旺道seo怎么优化网站
  • 桂林网站开发建设抖音关键词用户搜索排名靠前
  • 建独立网站短视频seo厂家
  • 网站改版 百度影响厦门seo外包平台
  • 如何做酒店网站设计百度百科优化
  • 小榄网站建设公司网站权重排名
  • 设计网站页面要注意什么惠州优化怎么做seo
  • 建设网站视频百度云盘2022年百度seo
  • 平板电脑网站模板当日alexa排名查询统计
  • 做餐饮类网站用哪个程序电商平台怎么搭建
  • Java项目基本流程(三)
  • MySQL中GROUP_CONCAT函数的使用详解
  • 企业高性能web服务器Nginx的详细部署(实战篇)
  • 性能解析案例
  • 机器学习——多元线性回归
  • 分布微服务电商订单系统Rust编码开发[上]