Bau*_*aub 3 protocols class objective-c ios
我正在浏览文档,因为我要实现一个协议而不是一个类(我之前从未做过的事情),而且我很好奇两者之间的区别.
有人能举一个简单的例子吗?
谢谢
Ear*_*rey 12
类用作基于该类的特定实现创建一个或多个对象的蓝图.一个很好的类比是切割黄油饼干的形式.表单的属性(形状,大小,高度)定义了可以用它剪切的cookie.您只有一个表单(类),但您可以使用它创建许多cookie(该类的实例,即对象).所有Cookie均基于该特定表单.类似地,属于该类实例的所有对象的属性都相同.
类= 数据和方法(特殊功能),所有都精巧地捆绑在一起.
类定义了它们的内部内容(数据)是什么+ 它们可以做什么样的工作(方法).内容基于包含各种数字类型,字符串,常量和其他更复杂的内容+方法的变量,这些内容+方法是(当执行时)对各种数据执行一些计算操作的代码块.
类中定义的所有方法都有它们的 定义 - 定义方法的名称+方法处理所需的数据(如果有的话)以及方法吐出以供其他人处理的数据(如果有的话).类中定义的所有方法也都有实现 - 提供处理的实际代码 - 它是方法的内部工作..内部有代码处理数据,并且还能够请求其他方法来处理数据.因此,课程是一种非常高贵的编程类型.
如果您了解上述内容,您将了解协议是什么.
协议是一组一个或多个方法声明,该集合具有名称并表示协议.我说声明,因为一起由特定协议定义的方法没有定义任何实现代码..唯一存在的是他们宣布的名字.看看上面 - 在课堂上,你不仅要定义这个类有哪些方法,还要定义如何完成这项工作.但协议中的方法没有任何实现.
让我们再次有一个真实的比喻,它会有所帮助.如果你来我家住这里一个星期,你需要遵守我的TidyUp协议.TidyUp协议定义了三种方法 - 每天洗碗,打扫房间,呼吸新鲜空气.这三种方法,我定义它们......你会做的事情.但是我绝对不在乎,实现应该是什么样子,我只是定义了方法.您将实现它们,即您定义该工作的细节(这些方法)将如何.我只是说,遵守我的协议并按照您认为合适的方式实施.
结局 - 你可以申报一些课程.您也可以单独声明协议.然后你可以声明,除了自己的方法之外,这个类将采用或遵守该协议,即.该类将实现协议的方法.