iOS系统自带了很多优秀的Framework,为iOS开发提供了很大的便利性。这些优秀的Framework里自然少不了很多优秀的设计思想,下面小结一下常用到的设计模式:
1、singleton单例:NSUserDefaults, NSFileManager, NSNotificationCenter等等。这些单例设计可以更好地统一管理资源、处理事件,解决资源共享互斥的问题。
2、delegate代理:UITableView的delegate、dataSourceDelegate, UITextField的delegate等等。为了确保控件的通用性,iOS的设计者很好地将不变部分与可变部分做了分离。
3、observer观察者:kvo、NSNotificationCenter等等,通过addObserver的方式添加观察者,解藕事件生产者与事件观察者的关系。
4、chain of responsibility责任链模式:NSObject的消息传递机制(forwardingTargetForSelector、resolveInstancemethod方法)、UIView的事件传递机制(UIView的nextResponder方法)。当前View如果不处理事件,nextResponder方法会返回nil,将事件传递给superView处理,很好地解决了各层view的用户交互事件。
5、策略模式:NSArray sortedArrayUsingComparator:
6、工厂模式: NSArray、NSNumber、UIButton等都是类簇