ray's Notes

Read The Fucking Source Code.

0%

iOS设计模式之道

mahua

第一章 设计模式初体验

构建可复用、可维护的面向对象应用程序法则:
  • 优先使用对象组合而不是继承。
  • 针对接口编程而不是针对实现编程。
MVC本身不是独立的模式,而是由几个基本的模式组合的符合模式。
  • M:模型对象维护应用程序的数据,并定义操作数据的特定逻辑。和用户界面不应该有任何直接的关联。
  • V:视图对象可以响应用户操作,并懂得如何将自己展现在屏幕上。不应该与模型对象有任何耦合。
  • C:关联视图对象和模型对象,使视图知晓模型的变更而予以相应。管理其他对象的生命周期。
代理(delegate):

代理是实际的资源或对象的占位或替代品。代理模式的一个特点是通过虚拟代理(virtual proxy)在接到请求时实现重型(heavy-weighted)资源的懒加载。

8个功能部分:
  • 对象创建
  • 接口适应
  • 对象去耦合
  • 抽象集合
  • 行为扩展
  • 算法封装
  • 性能与对象访问
  • 对象状态

第二章 案例分析

使用中介者来协调视图迁移:

中介者模式是指用一个对象来封装一组对象之间的交互逻辑。中介者通过避免对象间的显示的相互引用来增进不同对象间的松耦合(loose coupling)。因此对象间的交互可以集中在一处控制,对象间的依存关系会减少。 [HLControllerManager defaultManager];

用组合结构来管理常见的数据结构。
使用备忘录模式保存对象的状态。
命令模式实现撤销和恢复。

NSInvocation、NSUndoManager。

观察者模式。KVO。