(注:上图是演讲视频,需翻墙)
Swift团队使用协议的方法,给了我们哪些使用协议的提示?
好的。55个Swift标准库公有协议,18分钟,让我们开始吧。
首先我只想问:为什么是协议?为什么面向协议编程?如果我们回到过去那段年少无知少不更事的面相对象编程时期,我们很多人最初学习的是Objective-C,这意味着我们免受多继承的专横。又或者你是这个房间里另一半喜欢C++的人,那么我们并没有受过多继承的启示,我们稍后将对其进行讨论。
单继承中,层次结构是线性的:你有父辈、子辈以及孙子辈一系列的继承树。当你回到树的顶端,所有的一切有一个单独的父辈。这使得层次干净,但同时你的确失去了合理使用多继承所带来的优势。在Swift中不能继承枚举和结构类型,只有类可以。这意味着你有时需要弄得跟麻花一样来让你的类型有意义。这样最终能得到真正通用的超类。然后一级一级下来,如果你可以想象更多的级在你从图中获得一个叶子结点之前,你才能得到一个真正可以实例化和使用的类。