首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Golang语言情怀-第29期 Go 语言设计模式 备忘录

    备忘录模式包含三个角色: Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。...Originator可根据需要决定Memento存储Originator的那些内部状态 Memento(备忘录):负责存储Originator对象的内部状态,并可防止Originator以外的其他对象访问备忘录...初始类 type Originator struct { state string } //NewOriginator 实例化初始类 func NewOriginator(st string...) *Originator { return &Originator{ state: st, } } //SetState 初始化类设置状态 func (o *Originator...{ return o.state } //SaveStateToMemento 将初始类状态保存到备忘录类 func (o *Originator) SaveStateToMemento()

    31510

    备忘录模式 Memento 快照模式 标记Token模式 行为型 设计模式(二十二)

    备忘录角色Memento 负责记录Originator的部分或者全部状态,也就是拥有Originator的部分或者全部属性 备忘录角色的设计必然要参考Originator 备忘录角色应该仅仅允许Originator...originator = new Originator(); originator.setState(2); //快照 Memento memento = originator.createMemento...originator; CareTaker(Originator originator) { this.originator = originator; }...(); originator.recovery(originator.recovery(); } Originator与Memento合并 备忘录模式的根本在于状态的保存,模式的结构是一种通用的解决方案...Memento对象是对于Originator内部部分或者全部状态的一个封装 如果只是保存对象的状态,也可以借助于原型模式进行替代 也就是说使用另外一个新的Originator对象保存当前Originator

    63920

    Java设计模式(十九)----备忘录模式

    备忘录模式所涉及的角色有三个:备忘录(Memento)角色、发起人(Originator)角色、负责人(Caretaker)角色。...备忘录角色   备忘录角色又如下责任:   (1)将发起人(Originator)对象的内战状态存储起来。...备忘录可以根据发起人对象的判断来决定存储多少发起人(Originator)对象的内部状态。   (2)备忘录可以保护其内容不被发起人(Originator)对象之外的任何对象所读取。   ...将Memento设成Originator类的内部类,从而将Memento对象封装在Originator里面;在外部提供一个标识接口 MementoIF给Caretaker以及其他对象。...备忘录角色有如下责任:   (1)将发起人(Originator)对象的内部状态存储起来。   (2)备忘录可以保护其内容不被发起人(Originator)对象之外的任何对象所读取。

    68290
    领券