代理、观察者、单例设计模式的使用场景?

单例设计模式:

确保对于一个给定的类只有一个实例存在,这个实例有全局唯一的访问点。例如NSUserDefaults、UIApplication、NSFileManager、以及封装网络工具类时使用。

代理设计模式:

通常发送者和接收者的是一对一关系,目的是改变或传递控制链,允许一个类在某些特定时刻通知其他类,而不需要获取其他类的指针。在UIKit中大量使用代理。

KVO和Notification都是观察者模式:

一个对象任何状态的变更都会通知另外对其观察的对象。

Notification常用于一对多传值,当两个对象间无关联关系时,经常使用,如键盘的弹出或隐藏就是使用Notification
KVO是键值观察者模式,当指定对象的属性被修改后,KVO自动通知相应的观察者。

你可能感兴趣的:(代理、观察者、单例设计模式的使用场景?)