设计模式
设计模式是用来解决编程某些特定问题.
单例模式
什么时候使用单例模式?
在一个工程中,有一些类只需要一个实例变量,我们就可以将这些类设计成单例模式
单例模式的作用
当一个类A
被设计成单例模式时,由A
构造出的实例对象之于其他类来讲为全局实例对象,即每个类中由A
构造出的实例对象都为相同的对象
在OC中如何将一个类设计成单例模式
- 要在被设计成单例的类的.h文件中声明一个构造单例方法,如:
+(Student *)sharaIntance;
- 实现该方法
+(Student *)sharaIntance{
static Student *st=nil;//声明一个静态实例对象
if(st==nil){
st=[[Student alloc]init];
}
return st;
}
观察者模式
什么是观察者模式
在工程中,一些类去观察A类
,当A类
发生变化时,这些观察类就会收到消息,做出相应反应.
什么时候使用观察者模式?
当一个类需要发送笑死给多个类的时候,酒桶观察者模式
观察者模式的作用?
一对多的发送消息
OC中观察者模式的设计基础:KVC/KVO
KVC的由来:在ios2.0之前,并没有属性来访问类中实例变量,那时候开发人员使用键值编码
的方式来访问类中的实例变量,即KVC
方式.
使用KVC来访问类中实例变量:
KVO的由来:在变成过程中,我们经常需要判断目标是否发生改变,以便及时的作出对应的处理.此时苹果公司就提供一种策略,即OC运行时
提供了KVO
技术.其中kvo
是基于KVC
实现.
KVO的实现:
1. 注册成为观察者
2. 观察者定义KVO回调
3. 移除观察者