Swift 类型选择与扩展的深入解析
1. Swift 类型选择的要点
在 Swift 编程中,类型的选择至关重要。与大多数面向对象语言不同,Swift 有其独特的类型使用建议。
1.1 避免复杂类层次结构
在 Swift 里,除非有特定理由,否则应尽量避免使用复杂的类层次结构,而采用面向协议的方法。多数面向对象语言的标准库以类层次结构的形式存在,大部分库功能通过类来实现,但 Swift 有所不同。
1.2 动态分发与性能优化
当使用类的继承来继承和重写超类中定义的功能时,会涉及动态分发。动态分发是在运行时选择合适实现的过程,这会带来一定的运行时开销。对于大多数应用来说,这种开销可能不是问题,但对于对性能敏感的应用(如游戏),这种开销可能会很昂贵。
为了减少动态分发带来的开销,可以使用 final 关键字。 final 关键字可用于类、方法或函数声明前,限制类不能被子类化,方法或函数不能被重写。例如:
final func myFunc() {}
final var myProperty = 0
final class MyClass {}
以 Animal 类为例,如果要限制子类重写 walking() 方法和 numberOfLegs 属性,可以这样实现:
class
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



