美文网首页
iOS设计模式 ─── 对象状态

iOS设计模式 ─── 对象状态

作者: WellsCai | 来源:发表于2018-06-19 17:11 被阅读0次

对象状态,其实就是对对象状态的保存过程进行抽象。涉及的设计模式是备忘录模式。以我们常用的即时贴为例,状态本身被创建为一种对象形式(即时贴),它封装了原始对象的内部状态(作者创作的涂鸦)。只有创建即时贴的原始对象才能看懂保存的状态并用它恢复原来的状态。

备忘录

备忘录模式,在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将对象恢复到原先保存的状态。
这个模式有3个关键角色:原发器(originator)、备忘录(memento)和看管者(caretaker)。原发器创建一个包含其状态的备忘录,并传给看管者。看管人不知如何与备忘录交互,但会把备忘录放在安全之处保管好。(总之,会有个备忘录对象和备忘录管理者,原发器一般是我们的程序 → 简单说就是,我们程序负责创建一个备忘录,交给管理者去保管,我们获取直接通过管理者)

备忘录模式.png

Cocoa Touch框架在归档、属性列表序列化和核心数据中采用了备忘录模式。

当同时满足以下两个条件,应考虑备忘录模式:

  • 需要保存一个对象在某个时刻的状态。(备忘录)
  • 用于获取状态的接口会暴露实现的细节,需要将其隐藏起来。(看管者)

相关文章

  • 设计模式-状态

    这里介绍一下设计模式中的状态模式在iOS中的实现。 状态模式(State Pattern):允许对象内部状态发生改...

  • iOS设计模式 ─── 对象状态

    对象状态,其实就是对对象状态的保存过程进行抽象。涉及的设计模式是备忘录模式。以我们常用的即时贴为例,状态本身被创建...

  • 【设计模式】之状态模式

    状态设计模式 状态模式属于行为模式,基于当前状态处理运行时对象的行为。 当一个对象内部状态发生变更时,允许该对象改...

  • 状态模式

    设计模式-状态模式 1. 状态模式介绍 状态模式定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎...

  • Android中的设计模式之状态模式

    参考 《设计模式:可复用面向对象软件的基础 》5.8 State 状态 对象行为型模式 《Android源码设计模...

  • 设计模式学习专栏十一--------状态模式

    设计模式学习专栏十一--------状态模式 名称: 状态模式 (State) 价值观念: 通过改变对象内部的状态...

  • 设计模式[20]-状态模式-State Pattern

    1.状态模式简介 状态模式(State Pattern)模式是行为型(Behavioral)设计模式,允许一个对象...

  • lxidea的 Boolan C++设计模式 学习笔记(三)

    本周的设计模式比较多了,主要分为“对象性能”模式,“状态变化”模式, 对象性能模式 Singleton单件模式 保...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

  • 状态设计模式

    什么是状态设计模式? 状态设计模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 为什么要使用...

网友评论

      本文标题:iOS设计模式 ─── 对象状态

      本文链接:https://www.haomeiwen.com/subject/wqgaeftx.html