IOS设计模式-备忘录(持续更新)

内容大纲

  • 如何存储记录
  • 备忘录模式的基本原理
  • 优化存储方案
  • 回复UIView的状态

1、如何存储记录

在存储记录时,第一步我们需要用一把钥匙去打开一把锁。第二步,当我们打开锁之后就会有黑盒子,我们一开始还不知道里面有什么,所以是黑盒子。

1、存储记录的必要性

生活中,比如去超市购物有时候就需要在入口储物柜存放自己的包裹

2、记录的唯一标示

储物柜对应一把钥匙和号码标示。

3、存储记录与取出记录

===============================================================================================

根据上面的思维导图:备忘录模式有:1.有key值(唯一标示符) 2.获取与key对应的存储物品 3.可以存储多样性的对象。

备忘录模式的UML图:

2、备忘录模式

Originator起因;起源;创作者;发起人,对象:能够生成备忘录中心的状态值 Memento纪念品,记录,备忘录中心,能够将对象生成的备忘录中的状态值进行存储或者取出值 Caretaker看门人,备忘录中心存在黑箱子里的物品

设计存储中心,比如超市里的储物柜
指定存储接口,
实现存储机制,

3、优化存储方案

另外介绍:Fastcoding是一个专门用 于本地序列化的工具,存储速度超过系统内置的序列化方案,而且非常的好用,可以直接把普通对象转化成NSData进行直接存储,比我们自己写的存储通过一 个对象进行继承NSCoding实现某些方法才能存储的方案好的很多,推荐使用。 只不过对这个Fastcoding的要求是,在整个项目是ARC的情况下,这个Fastcoding需要通过命令(fno-objc-arc)改为 MRC,因为这个Fastcoding在MRC中不进行内存管理效率是最高的。

4、回复UIView的状态

时间: 2024-10-25 02:22:46

IOS设计模式-备忘录(持续更新)的相关文章

如何面试一个1-3年的 iOS 程序员(持续更新)

如何面试一个1-3年的 iOS 程序员(持续更新) 计算机基础类 请说一说 HTTP 1.0 和 1.1之间的区别(懵逼题)这是一道计算机类别的题, 具体区别可以单独写一篇博客了, 但是一般情况下, 最主要的区别还是指1.1中支持长连接. 1.0规定的是浏览器只能与服务器保持短连接, 浏览器的每次请求都需要跟服务器建立一次 TCP 连接, 请求处理完以后就立即断开 TCP 连接, 服务器不跟踪每个客户也不记录过去的请求. 具体可以看这篇博客 请说一说长连接和短连接的区别这个和面试官讨论了一下,

<精华篇>:iOS视频大全-持续更新

注意:新浪微博分享的资料和简书分享的资料,略有不同! 小码哥swift3.0版 斗鱼项目视频:点击下载  iOS开发25个项目实战:点击下载 2016PHP全套下载:点击下载  黑马刀哥iOS视频精选:点击下载  支付宝生活圈开发:点击下载 lldb高级用法:点击下载  高级数据恢复系列视频:点击下载 逆向资源视频初级视频:点击下载 2016HTML5全套下载:点击下载 iOS单元测试视频高清:点击下载 面试上百个iOS后的求职感受:点击下载  优化TableView初体验:点击观看 看大神如何

[系列汇总] - 二十三种设计模式(持续更新中…)

摘要 最近在读GOF的Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础),学习前辈们的经验来增加自己的编码设计能力.在学习的过程中,会把我从书上学到的知识以及自己的理解写到这里.一方面能够巩固自己学到的东西同时方便以后的复习,另一方面是希望能够帮助到那些跟我一样不大了解设计模式的人. 我理解的设计模式不是一套固定的代码,更多的是一种设计理念.它能够帮助我们解决特定的设计问题,使我们的程

iOS设计模式 - 备忘录

原理图 说明 1. 在不破坏封装的情况下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态 2. 本人已经将创建状态与恢复状态的逻辑抽象成了协议,并配合备忘录中心一起使用 源码 https://github.com/YouXianMing/MementoPattern // // MementoCenter.h // MementoPattern // // Created by YouXianMing on 15/9/11. // Copyrigh

谈谈ios内存管理--持续更新

本文主要谈谈ios内存管理的发展脉络,不足之处,还请指教,相互学习交流.做ios开发,永远无法避开内存管理,无论我们是否有意识去考虑这个事情,但是只要我们写了OC程序,那么就与内存管理有关. 一.内存管理是做什么的? 二.内存管理方式一:MRC (一)引用计数器 (二)原则 (三)alloc.new.copy.mutableCopy.retain.release.dealloc alloc内部实现 引用计数表 (四)autorelease 三.内存管理方式二:ARC (一)__strong (二

iOS设计模式--备忘录设计模式与命令设计模式

何为备忘录模式? 在响应某些事件时,应用程序需要保存自身的状态,比如当用户保存文档或程序退出时.例如,游戏退出之前,可能需要保存当前会话的状态,如游戏等级.敌人数量.可用武器的种类等.游戏再次打开时,玩家可以从离开的地方接着玩.很多时候,保存程序的状态真的不需要什么特别巧妙的方法.任何简单有效的方法都可以,但是同时,保存信息应该只对原始程序有意义.原始程序应该是能够解码它所保存文档中的信息的唯一实体.这就是备忘录模式应用于游戏.文字处理等程序的软件设计中的方式,这些程序需要保存当前上下文的复杂状

iOS设计模式---备忘录模式

备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. Originator(原发器):记录当前时刻的内部状态,负责定义哪些属于需要备份的状态,负责创建memento,负责从memento恢复状态. Memento(备忘录):负责存储Originator的内部状态,在需要时提供给Originator内部状态. Caretaker(看管人):将Memento保存在安全的地方,并负责提取. 一句话概括:Originator创建

iOS特殊操作--持续更新

1. ios8,9开始支持icloud,影响相册相关操作: 3. 应用切到后台后,新消息提醒 是否在应用图标右上角作数字标记,有开关控制:   设置->通知->应用名称->"应用程序图标标记"选中此项,表示有数字标记,不选则没有: 4. 如何在数据网络下查看手机IP setp1.打开手机数据网络 setp2.打开手机浏览器--百度,在百度搜索框中 输入"IP地址" setp3. 查看搜索结果: 5. 连续输入两个空格,会成为一个句号 如果是中文输入

IOS UITextField-持续更新

限制textField长度 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.textField]; #define kMaxLength 10 -(void)textFiledEditChanged:(NSNotification