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

    备忘录模式——实现象棋悔棋

    想象这样的一种场景,当你在玩象棋游戏时,这个时候你可能在落子的下一秒意识到这一步棋不可以这样下,这时你的第一个反应就是点击悔棋,回到落子之前的状态。而问题是如何存储上一个状态,这个时候就可以使用设计模式中的备忘录模式。 备忘录模式分为三个对象: Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。 Memento(备忘录):负责存储Originator对象的内部状态,并可以防止Originator以外的其他对象访问备忘录。备忘录有两个接口:Caretaker只能看到备忘录的窄接口,他只能将备忘录传递给其他对象。Originator却可看到备忘录的宽接口,允许它访问返回到先前状态所需要的所有数据。 Caretaker(管理者):负责备忘录Memento,不能对Memento的内容进行访问或者操作。 三个对象各有各的功能总体来说就是发起人进行对以往的状态进行获取或者存储此时的状态,管理者则是存储着备份的状态,而备忘录就是存储状态的各种属性的一种载体,就像是发起人与管理者之间的一个桥梁,进行信息的交流。 利用这个模式就可以进行实现象棋悔棋这个功能

    01

    重学 Java 设计模式:实战备忘录模式「模拟互联网系统上线过程中,配置文件回滚场景」

    实现不了,有时候是功能复杂度较高难以实现,有时候是工期较短实现不完。而编码的行为又是一个不太好量化的过程,同样一个功能每个人的实现方式不一样,遇到开发问题解决问题的速度也不一样。除此之外还很不好给产品解释具体为什么要这个工期时间,这就像盖楼的图纸最终要多少水泥砂浆一样。那么这时研发会尽可能的去通过一些经验,制定流程规范、设计、开发、评审等,确定一个可以完成的时间范围,又避免风险的时间点后。再被压缩,往往会出一些矛盾点,能压缩要解释为什么之前要那么多时间,不能压缩又有各方不断施加的压力。因此有时候不一定是借口,是要考虑如何让整个团队健康的发展。

    02
    领券