我们一起来读书吧 关注:149贴子:2,388
  • 1回复贴,共1

设计模式-可复用面向对象软件的基础 5.6-5.8

只看楼主收藏回复

备忘录模式允许对象创建自身状态的快照,并在需要时恢复到以前的状态。
通过将对象状态的副本存储在名为 备忘录 的特殊对象中来避免其他对象从外部复制对象的状态。
备忘录模式还限制了对备忘录内容的访问,只有创建备忘录的对象可以获取快照中的原始状态,其他对象只能获取快照的元数据。
在备忘录模式中,负责人 负责保存备忘录,但不能修改储存在备忘录中的状态,但是原发器对象可以随时恢复其以前的状态。
在实际应用中,例如文字编辑器,可以创建一个历史类作为负责人,每次执行操作前都会在历史类中添加一个备忘录。当需要撤销操作时,历史类会取出最近的备忘录并让编辑器进行回滚。
应用场景:
文本编辑器的撤销操作;
数据库系统的事务管理:在数据库系统中,事务必须是原子的,即要么完全成功,要么完全失败。在执行事务过程中,如果发生错误,系统可以利用备忘录模式恢复到事务开始之前的状态。
Git:可以保存项目的不同版本状态,当需要回滚到以前的版本时,可以通过备忘录恢复到之前的状态。


IP属地:北京1楼2024-11-08 15:32回复
    观察者模式
    能够在对象之间定义一种订阅机制,当一个对象的状态发生改变时,所有依赖它的对象都会收到通知并自动更新。
    在观察者模式中,一个或多个观察者对象对一个主题对象的状态感兴趣,并且将自身注册到该主题对象上,以便当主题对象的状态发生改变时,它们就会被通知。主题对象在状态发生改变时,会向所有已注册的观察者发送通知。
    应用场景:
    消息发布/订阅系统:观察者模式可以用来实现消息发布/订阅系统,订阅者可以订阅自己感兴趣的消息类型,发布者在发布消息时,所有订阅了该消息类型的订阅者都会收到通知。


    IP属地:北京2楼2024-11-08 15:44
    回复