备忘录模式

本文介绍了备忘录模式的概念,强调了其在对象状态保存和回滚中的作用。对比了备忘录模式与原型模式的区别,指出备忘录模式侧重历史状态保存和回滚,而原型模式侧重于全新对象的复制。同时,讨论了备忘录模式与命令模式撤销命令的不同,并质疑了是否必须有三个对象参与。最后,总结了备忘录模式在游戏、数据库和Git等领域的应用,并提出了命令模式中已执行命令撤销的可能性问题。
摘要由CSDN通过智能技术生成

简介

备忘录模式,百度了很多文章,大多都是说在不违背对象封装完整性的前提下,保存对象的状态,然后可以进行状态的回滚,因此又称为快照模式。

但是个人又有一些小疑问,希望各路大佬可以一起讨论一下


正文

问题一:备忘录模式和原型模式的区别

用法区别

备忘录模式是将历史状态保存,直接在原有状态上修改。因此每次修改都可以回滚,但是不能合并

原型模式是新建一个一模一样的对象,在全新的对象上进行修改。因此可以合并,回滚也只是切换

消耗区别

备忘录模式只能保存对象的状态,不能直接保存对象的实例,尝试过直接保存对象实例,对象修改,保存的实例也会跟着修改。因为直接保存实例只是一个强引用指向。

原型模式直接创建一个全新的实例,所以全新实例修改,原有实例不会跟着变化,但是消耗更多。

应用场景区别:

备忘录模式适用于打游戏保存记录,数据库快照(备份),浏览器回退,git每次提交

原型模式适用于git开分支,数据库多版本管控(事务&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值