读了这篇介绍设计模式的文章,小记一下。
https://www.raywenderlich.com/46988/ios-design-patterns
- Facade 门面模式
统一提供对外的接口,隐藏内部复杂的细节。
对于调用接口的用户而言,不需要关心接口的内部实现。
- Decorator 装饰者模式
在不改变原有类的基础上,拓展类的属性和方法。
iOS 中最常见的装饰者模式的例子就是 Category 和 Delegate 了。
- Adapter 适配器模式
将不兼容的接口封装后,暴露出来使用。
iOS 中最常见的适配器就是各种各样的代理协议了。
一个类遵循了某个协议,那么其他类调用这个类的时候,访问协议指定的方法即可。
- Observer 观察者模式
一个类只关心另一个类的状态变化,而并不关心其内部实现时,就常使用观察者模式。
iOS 中的 Notifications 就是一个很好的发布-订阅模型,发布者并不需要知道订阅者的存在。
除此之外,还有个常用的 KVO (Key-Value-Observing) 键值观察方法,用于监听某个对象的某个属性的变化。
- Memento 备忘录模式
将一个状态保存下来,用于恢复状态。