【发布时间】:2016-03-22 04:16:35
【问题描述】:
通过观看Apple提供的视频教程,似乎swift是面向协议的编程语言,Apple鼓励程序员使用协议而不是类。 但从我个人的角度来看,我认为协议没有明显的优势。类可以符合协议,但它们也可以从超类继承。我们可以为协议添加扩展,但我们也可以为类添加扩展。我们可以在符合协议的类中实现函数,但我们也可以在子类中覆盖 func。 我仍然对为什么我们需要使用协议而不是类感到困惑。什么时候我们应该使用协议而不是类?
【问题讨论】:
-
这是我的示例:如果我们有继承自
Vehicle的Car和继承自BuildingMaterial的Wood,并且我们希望将方法burn添加到Car和Wood,那么协议将是最合适的。 -
我不确定您指的是哪个视频,但 WWDC 2015 的 Protocol-Oriented Programming 详细描述了协议的优点。