设计模式
参考资料:
MVC
模型层 (Model) :存储数据并且定义如何操作这些数据。 视图层 (View) :负责模型层的可视化展示,并且负责用户的交互,一般来说都是继承自 UIView 这个基类。 控制器 (Controller) :控制器是整个系统的掌控者,它连接了模型层和数据层,并且把数据在视图层展示出来,监听各种事件,负责数据的各种操作。
单例模式
单例模式确保指定的类只有一个实例对象,并且可以全局访问那个实例。一般情况下会使用延迟加载的策略,只在第一次使用的时候初始化。
外观模式Facade
可以理解为通过封装,将使用这不需要知道的内部实现隐藏起来,只提供简洁的接口给外部使用。
装饰者模式 - Decorator
可以动态的给指定的类添加一些行为或指责,而不用对源代码进行任何修改。当你需要子类的时候不妨考虑一下装饰者模式,可以在原始类上封装一层。
在Swit中,有两种方式实现装饰者模式:扩展和委托。
适配器模式 - Adapter
适配器把自己封装起来然后暴露统一的接口给其他类,这样即使其他类的接口各不相同,也能相安无事,一起工作。
iOS中通常通过委托实现适配器模式。
观察者模式
在观察者模式中,一个对象在状态发生变化的时候会通知另外一个对象。参与者并不需要知道其他对象具体是干什么的 - 这是一种降低耦合度的设计。这个设计常用于当某个属性改变的时候通知改关注该属性的对象。
常见的使用方式观察者注册监听,然后在状态发生改变的时候,所有观察者们都会收到通知。
Cocoa使用两种法式实现了观察者模式:Notification 和 Key-Value Observing(KVO)。
备忘录模式
备忘录模式捕捉并且具象化一个对象的内在状态。换句话说,它把对象存在了某个地方,然后在以后的某个时间再把它恢复出来,而不会打破它本身的封装性,似有数据依然是私有数据。