iOS 设计模式(一)

前提

设计模式也好,架构也好,都是基于问题来决定的。
用例描述:通过应用程序,谁可以做什么。

何为架构

在知乎上看到这么一段话:
//以下是我搬运的知乎的名叫朱众的,感觉很有意思
打个不恰当的比方,有点像挡拆和战术的关系。
在合适的情况下用好挡拆可以很好的执行战术,
但战术不只有挡拆,
而且有的战术不需要挡拆,
最重要的是盲目的用挡拆有时候反而会起反作用。

看了上面这么一段话,感觉有那么一点意思,不过真正的架构是什么,如何看架构,这是一门学问,我不太明朗这块。只能先聊一聊挡拆。

设计模式

  • 中介者模式
何为中介者模式

用一个对象来封装一组对象之间的交互逻辑

好处
1. 避免对象间的显示引用,来增进不同对象之间的松耦合(loose coupling);
2. 对象之间的交互控制在一处,对象间的依存关系会减少。
应用的场景
1.视图的迁移
    一般情况下,一个页面可能有许多的按钮,从这个页面我们会跳转到其他很多的页面,不同的按钮的跳转可能逻辑是不一样的,进而我们可以在中介者中进行逻辑的处理。
2.信息的传递 
3.操作的调用 

  • 备忘录模式

看管人:(caretaker)对象
定义:“备忘录”允许对象按照其想要任何方式(简单或复杂)将自己的状态保存为一个对象,根据此模式,这个对象我们一般将之成为备忘录对象。然后其他的对象,比如看管人对象(caretaker) ,将备忘录对象保存到某处(一般是文件系统和内存系统)。看管人对象一般是不知道备忘录对象的内部实现细节。 一段时间后,收到请求,看管人对象将备忘录对象传回到原来的对象,让原来的对象根据在备忘录对象中保存的信息恢复其状态。

何种问题?

对象归档方案
本地化对象的时思路

保存和存取的时候我们可能要用到备忘录模式 
保存过程:
a. 转成要保的数据//(在对象内部自己的方法转成想要保存的对象)
b. 保存路径 (构建路径)
c. 存进去 

读取过程:
a. 获得路径
b. 读取
c. 反序列化
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容