zoukankan      html  css  js  c++  java
  • 备忘录模式

    概述

    在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性。

    意图 

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

    结构图

    image

    角色说明:

    Memento(备忘录):保存Originator对象的内部状态(主动权在Originator),提供宽接口给Originator,提供窄接口给CareTaker。 
    Originator(原发器):控制那些内部状态要保存,防止外界对象访问Memento,自己可以访问Memento,尤其是先前状态。 
    CareTaker:负责保存Memento,但不能浏览Memento(从而是窄接口)。 
    State:状态类,用来模拟内部状态,亦可以是一个string,这里设计成类更有一般意义。

    生活中的例子

    在使用IE浏览器时,有一个按扭返回上一步操作,返回上一个打开的页面,其实原理和备望录模式一样

  • 相关阅读:
    clion打断点不生效
    PHP加密解密
    细说MySQL表操作
    细说MySQL数据库操作
    终端(命令行)连接MySQL
    MySQL结构
    求1!+(1!+3!)+(1!+3!+5!)+...+(1!+3!+5!+7!+9!)的值
    react 生命周期
    React TS 组件 Demo
    react-redux 实现原理
  • 原文地址:https://www.cnblogs.com/linjiancun/p/2105973.html
Copyright © 2011-2022 走看看