Swift 中的面向协议编程
Swift 中的面向协议编程
简介:
引言
Jon Hoffman 所著的 《Protocol-Oriented Programming with Swift》(2015 年)是最早介绍 Swift 语言中面向协议编程(POP)范式的书籍之一。Swift 从设计之初就是一门面向协议的语言,作者详细阐述了如何使用协议、扩展和组合来替代传统的类继承。本书对于希望编写更灵活、可测试且可复用代码的 iOS 和 macOS 开发者来说非常有用。
本书内容
全书共 10 章,每章专注于 POP 的一个特定方面。从基础开始:什么是协议,如何声明和遵循协议。然后作者转向更复杂的主题:协议扩展、协议组合、在泛型中使用协议,以及 POP 与 OOP 的对比。特别关注实际示例——创建游戏引擎、使用委托和设计模式。
目标读者
本书面向已经熟悉 Swift 基础知识并拥有 iOS 或 macOS 应用开发经验的开发者。对于初学者来说可能比较困难——需要具备语法、数据类型和基本 OOP 的知识。然而,对于那些希望从经典继承转向更现代方法的开发者来说,本书将是一个极好的帮手。
读者将学到什么
- 协议基础:声明、遵循、必需和可选要求。
- 协议扩展:添加默认实现,创建灵活的 API。
- 协议组合:将多个协议合并为一个类型。
- 协议与泛型:类型约束、关联类型。
- 设计模式:通过协议实现委托、策略、适配器。
- 测试:协议如何简化单元测试。
- 与 OOP 对比:何时选择协议,何时选择类。
优点
本书的主要优势在于其实用性。每个概念都有可在 Xcode 中运行的代码作为支撑。作者不仅解释理论,还展示了如何在真实项目中应用 POP。关于协议组合和在泛型中使用协议的章节尤其宝贵——这些主题在其他书籍中很少见。此外,清晰的结构也值得称赞:从简单到复杂,并重复关键思想。
推荐人群
本书对所有希望加深对 Swift 的理解并学习设计灵活系统的 iOS 开发者都很有用。我特别推荐给那些厌倦了继承问题(脆弱的基类、菱形继承)并正在寻找替代方案的人。此外,对于从 Objective-C 迁移到 Swift 的开发者来说,本书也很有帮助——POP 将帮助他们更快地掌握新语言的惯用法。
尽管本书出版于 2015 年,但 POP 的核心概念在当今的 Swift 版本(5.x)中仍然适用。我推荐将其作为面向协议编程的入门读物。