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

网站设计工作室公司南昌seo服务

网站设计工作室公司,南昌seo服务,服务行业做网站,网站做seo推广方案文章目录 概念结构实例总结 概念 备忘录模式#xff1a;在不破坏封装的前提下捕获一个对象的内部状态#xff0c;并在该对象之外保存这个状态#xff0c;像这样可以在以后将对象恢复到原先保存的状态。 就好比我们下象棋#xff0c;下完之后发现走错了#xff0c;想要回退… 文章目录 概念结构实例总结 概念 备忘录模式在不破坏封装的前提下捕获一个对象的内部状态并在该对象之外保存这个状态像这样可以在以后将对象恢复到原先保存的状态。 就好比我们下象棋下完之后发现走错了想要回退到上一步这就是备忘录模式的应用。 该设计模式的拉丁文为Memento在拉丁语中为【记住】的意思到中文就改为了【备忘录】。 结构 Originator(原发器):它是一个普通的类通过创建一个备忘录来存储当前内部状态也可以用备忘录来恢复其内部状态一般将系统中需要保存内部状态的类设计为原发器。 Memento(备忘录): 备忘录用于存储原发器的内部状态根据原发器来保存哪些内部状态。备忘录的设计一般可以参考原发器的设计根据实际需要确定备忘录类中的属性除了原发器和负责人类之外备忘录对象不能直接供其他类使用。 Caretaker(负责人):它负责保存备忘录。在负责人类中可以存储一个或多个备忘录对象它只负责存储对象而不能修改对象也无须知道对象的实现细节。 实例 现在来实现一个象棋的软件通过备忘录模式可以实现“悔棋”的功能。 象棋类充当原发器 public class Chessman {private String label;private int x;private int y;public Chessman(String label, int x, int y) {this.label label;this.x x;this.y y;}public void setLabel(String label) {this.label label;}public void setX(int x) {this.x x;}public void setY(int y) {this.y y;}public String getLabel() {return (this.label);}public int getX() {return (this.x);}public int getY() {return (this.y);}public ChessmanMemento save() {return new ChessmanMemento(this.label, this.x, this.y);}public void restore(ChessmanMemento memento) {this.label memento.getLabel();this.x memento.getX();this.y memento.getY();} }ChessmanMemento类充当象棋备忘录 public class ChessmanMemento {private String label;private int x;private int y;public ChessmanMemento(String label, int x, int y) {this.label label;this.x x;this.y y;}public void setLabel(String label) {this.label label;}public void setX(int x) {this.x x;}public void setY(int y) {this.y y;}public String getLabel() {return (this.label);}public int getX() {return (this.x);}public int getY() {return (this.y);}public ChessmanMemento save() {return new ChessmanMemento(this.label, this.x, this.y);}public void restore(ChessmanMemento memento) {this.label memento.getLabel();this.x memento.getX();this.y memento.getY();} }MementoCaretaker类象棋备忘录管理者充当负责人 public class MementoCaretaker {private ChessmanMemento memento;public ChessmanMemento getMemento() {return memento;}public void setMemento(ChessmanMemento memento) {this.memento memento;} }客户端 public class Client {public static void main(String[] args) {MementoCaretaker mc new MementoCaretaker();Chessman chess new Chessman(车, 1, 1);display(chess);mc.setMemento(chess.save()); //保存状态chess.setY(4);display(chess);mc.setMemento(chess.save()); //保存状态chess.setX(5);display(chess);System.out.println(******悔棋******);chess.restore(mc.getMemento()); //恢复状态display(chess);}public static void display(Chessman chess) {System.out.println(棋子 chess.getLabel() 当前位置为 第 chess.getX() 行第 chess.getY() 列。);} }打印结果 如果想做到批量回退思路是在MementoCaretaker维护一个有序的list即可用来存放ChessmanMemento对象。 总结 【原发器】就是我们要进行备份的东西【备忘录】和【原发器】基本是一样的只不过可以把它理解为【原发器】的备份【负责人】就是客户端的入口通过它来进行备份和保存但是它关联的是【备忘录】并不是【原发器】。 当我们保存一个对象在某一时刻的全部状态或部分状态需要以后它能够恢复到先前的状态时可以考虑备忘录模式。
http://www.pierceye.com/news/563364/

相关文章:

  • 运动器材网站开发方案失信被执行人名单查询系统
  • 深圳商业网站建设模板网站建设worldpress
  • 宁波网站排名网站开发 哪家好
  • 做网站的软件工程师网站积分程序怎么建设
  • ps网站轮播图怎么做动漫制作专业的来源
  • 怎么知道一个网站是谁做的建筑认证
  • 网站关键词优化排名公司网站备案的意思
  • 怎么把qq空间做成企业网站医疗网站设计
  • 个人博客网站需求分析上海最大企业前十名
  • 兴义之窗网站怎么做网页界面设计的类别
  • 黄南州网站建设公司安徽省建设厅执业资格注册中心网站
  • wordpress布置网站教程wordpress it模板下载地址
  • 网站首页栏目设置宿州建设网站公司哪家好
  • 西安网站建设怎么接单做社交的招聘网站
  • 实训课网站开发个人小结横岗做网站
  • 网站集约化建设管理方案wordpress加cnzz统计在那里加
  • 重庆知道推广网站方法青岛网络推广的有哪些公司
  • 自己做网站服务器要多少钱特殊字体
  • 网站建设合同 协议书网站建设工具有哪些
  • 网站建设的基本条件网站建设策划案怎么写
  • 知乎网站开发用的语言郑州建设网站哪家好
  • 企业官网建站费用长沙做无痛肠镜东大医院l网站
  • 建网站资料wordpress 读书模板
  • 网站建设初学者教程成华区微信网站建设公司
  • 沈阳网站建设-中国互联商城页面
  • 成交型网站倡导公司进贤南昌网站建设公司
  • 网站跟软件有什么区别是什么点击器原理
  • 网站建设项目策划书范文杭州 网站开发公司
  • 酒店网站建设设计企业营销型网站策划
  • 用dw怎么做登录页面的网站成都微信网站建设推