协议
协议的声明看起来比较类似一个类的接口,不同的是协议没有父类也不能定义实例变量。协议是一种特殊的程序设计结构,用于声明专门被别的类实现的方法。协议在以下场合非常有用;
需要由别的类实现的方法
声明未知类的接口
两个类之间的通信
协议的基本特点:
协议可以被任何类实现的方法
协议本身不是类,他是定义了一个其他类可实现的接口
类目也可以采用协议
协议的声明
@protocol helloprotocol <NSObject>
@optional (选择)
-(void)fangfayi
-(void)fangfaer
@required(必须完成)
-(void)required
@end
缺省是required
采用了协议
@interface Person:NSObject<HelloProtocol,…>
@end
实现
@implementation Person
-(void)requireMethod
{
}
@end
代理设计模式
当一个对象想监听另一个对象的状态或发生什么事情 用代理
当一个对象状态改变想通知其他人用代理
成为对象代理之前,要遵守他的协议,然后实现协议方法。
代理是指一个对象提供机会对另一个对象中的行为发生变化时做出的反应。
代理设计模式的基本思想—两个对象协同解决问题,通常用于对象之间的通信。
代理设计模式的基本特点:
简化了对象的行为,最小化了对象之间的耦合度
使用代理,一般来说无需子类化。
简化了我们应用程序开发,既容易实现,又灵活。