MNY*_*MNY 2 objective-c objective-c-protocol
为什么我要使用协议而不是创建子类并继承方法..?
请向我解释一下,我对这个话题感到困惑,我对阅读本书中的解释并不十分满意.
我在哪里使用协议而不是其他方式来获取方法..?如果我可以继承类并获取方法,为什么我要使用我需要定义方法的协议?
为什么我要使用协议而不是创建子类并继承方法..?
协议使不相关的类可以实现相同的接口.然后,协议的客户端可以使用这些类中的每一个的实例.例如,UITableViewDataSource是一种提供接口的协议,通过该接口,表可以从实现协议的任何对象请求数据.只要实现数据源接口,表视图就不关心对象的类型.
想象一下,如果所有表数据源都必须从公共类继承,那将是多么令人不快的事情!Objective-C仅提供单一继承,因此您实际上被限制为仅使用一种对象作为数据源.但是,对于协议,数据源可以是视图控制器,模型对象,甚至可以是远程对象.
更具体地说,协议允许一种形式的多态性.这意味着单个对象可以采用多种形式:例如视图控制器,表数据源,表委托,滚动视图委托.因为Objective-C是单继承语言,所以只能通过继承获得其中一个接口.你自己实现的其余部分,但这通常是有道理的,因为你通常采用一个给定的协议,以便自定义一些其他对象的行为.
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |