代理、观察者、单例设计模式的使用场景?
2017-03-30 本文已影响0人
鸡蛋不吃黄
单例设计模式:
确保对于一个给定的类只有一个实例存在,这个实例有全局唯一的访问点。例如NSUserDefaults、UIApplication、NSFileManager、以及封装网络工具类时使用。
代理设计模式:
通常发送者和接收者的是一对一关系,目的是改变或传递控制链,允许一个类在某些特定时刻通知其他类,而不需要获取其他类的指针。在UIKit中大量使用代理。
KVO和Notification都是观察者模式:
一个对象任何状态的变更都会通知另外对其观察的对象。
Notification常用于一对多传值,当两个对象间无关联关系时,经常使用,如键盘的弹出或隐藏就是使用Notification
KVO是键值观察者模式,当指定对象的属性被修改后,KVO自动通知相应的观察者。