iPhonecategory category是什么意思

Category

Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,我们可以为任何已经存在的class添加方法(不包括数据成员)却不需要访问该class的实现文件。

新添加的方法和原有的方法具有同等的地位,可以访问class的数据成员,并且完全植入到class的继承体系之中,子类同样会继承新添加的方法。利用category对类进行扩展可以避免使类的继承体系过于臃肿,复杂,降低了维护成本。另外,新添加的方法如果和已经存在的方法具有相同的prototype,那么新添加的方法将会覆盖已经存在的方法,也就是category使得使得在没有源文件时修改已存在class的functionality或者清除bug成为可能,所有该class的对象的行为都将发生变化,这一点是继承无法达到的。

Category的缺点:

  1. 如果一个已经存在的方法被新方法覆盖,那么将没有任何途径可以对旧方法进行调用。这一点和继承是不同的,子类对父类成员函数重写(override),但我们依然可以对父类中的被重写的成员函数进行调用。
  2. 如果有多个category对同一个class的成员函数进行重写,那么具体的行为是未定义。

Category的应用:

  1. 对类进行扩展或patch。
  2. 使用category或(anonymous category)来模拟实现private method。
  3. 使用category(informal protocol)来实现delegation,在cocoaframework中就大量使用了category来声明delegate methods。
  4. 利用category把一个庞大的class划分为小块儿来分别进行开发,从而将functionality更好的进行划分,利于维护。

Protocol

根据字面意思,protocol就是一个协议,一个contract。一个class如果采用了某个protocol,那么它就必须要遵守这个协议。从另外一个角度,只要我遵守了某个protocol或者标准,那我就可以和其它的类进行交互,而且其它类并不需要知道我的内部是如何实现的,例如一套组合音响,只要其中的dvd,录音机等设备采用的是标准接口,那么它就可以很轻易的被放入这个音响系统中,发挥自己的功能。回到objectivec,在cocoa touch framework中利用protocol声明delegate methods是同样的道理,cocoatouchframework,你们想要提供自定义功能或者响应某个事件吗?很简单,只要你们的功能遵守我提供的protocol。(注意,这里之所以采protocol来声明delegatemethods,而不是cocoa framework中使用informalprotocolcategory),是因为objective c2.0 引入了@optionalmethodsiphone又是在objective c2.0之后出来的,所以cocoa touchframework中就用protocol替代informalprotocol来声明delegatemethods)其实plugin,回调函数都是和protocol相同的思路。

另一方面,objective c只支持单一继承,protocol提供了一个途径来达到多重继承的目的。

iPhonecategory category是什么意思
  

爱华网本文地址 » http://www.413yy.cn/a/25101015/252874.html

更多阅读

怎样理解换手率是什么意思? 换手率是什么意思

怎样理解换手率是什么意思? 1、 换手率是指个股日成交量与其流通盘的比值,它反映了个股的活跃程度,在实战操作之中,对量的研判是非常重要的,换手率是值得长期关注的指标。其原理和方法: 大家知道,热门股的重要特征是股价表现活跃、成交量

手机刷机是什么意思 手机刷机线

刷机是什么意思刷机就是给智能手机重装系统,进行系统安装的操作。就像是给自己的电脑从新装系统一样,刷机的目的在于提高整机运行性能.升级原来的系统,能够修正系统bug让手机运行得更加稳定.更换自己喜欢的版本.删除官方手机自带的一

Macd金叉是什么意思,Kdj金叉是什么意思 macd kdj rsi金叉选股

今天我们来说一下,Macd金叉是什么意思,Kdj金叉是什么意思这俩个问题。首先大家要长得,股市技术面上看,是存在金叉和死叉二种概念的,金叉的出现一般意味着上涨,死叉的出现一般意味着下跌。但这里建议大家看金叉或者死叉时,不要只看日K线,还

4G网络是什么意思4G手机什么时候上市 q板上市是什么意思

4G网络是什么意思4G手机什么时候上市——简介4G网络是什么意思4G手机什么时候上市:中国第四代无线通信网络系统技术诞生了,而且是中国人的技术!国人该为之骄傲!第四代无线通信网络系统技术统称为4G网络,世界科研人员还在研发当中!也是未来

声明:《iPhonecategory category是什么意思》为网友零温柔分享!如侵犯到您的合法权益请联系我们删除