IOS之Category,Extension,Protocol,delegate

类目(Category)又叫类别:为封装类添加额外的方法,对现有类扩展设计模式

类目定义的方法会成为原始类的一部分,子类能够继承已经添加类目的父类的全部方法,但父类不能拥有子类的类目方法,类目不继承原始类,只兼容和扩展原始类ui

没法向类目中添加新的实例变量,只能经过子类添加;若是在类目中覆盖现有类方法,会引发super 消息的断裂,由于类目方法更高的优先级,所以通常不要覆盖现有类方法spa

 

延展(Extension)“匿名”的类目,延展定义类的私有方法,通常是在类的实现文件@implementation之上定义如:Person() 和类目的区别在于括号里面是空的,没有名字的,暂时性的存在,只能本类调用方法,子类也没法调用父类的延展设计

另外在本类的实现文件@implementation之上也能够定义私有方法,私有的静态变量代理

延展的特色就是定义私有方法orm

 

协议(Protocol)没有父类也不能定义实例变量,只声明方法,声明未知类的接口,两个类之间的通讯对象

@required :必须实现。默认继承

@optional :选择性的实现接口

NSObject为基本类根类也为基协议,能够写也能够不写事件

 

代理设计模式:两个对象协同解决难题,用于对象之间的通讯

通常用于控件和控制器对象之间的通讯,控件事件发生要经过控制器行为表现

就是说该对象类有委托方法,实现委托方法(遵照委托协议)须要在其余类中实现,经过其余类对象来代理解决

相关文章
相关标签/搜索