管理軟體複雜性最重要的技巧之一:讓開發者在任何時刻都只需要面對整體複雜性的一小部分。
這就是模組化設計(modular design)的精神。
本章脈絡#
本章從模組化設計的最基本原則談起,依序討論:
- 何謂模組化設計,以及介面 / 實作的拆分
- 介面裡到底裝了哪些資訊(正式 vs. 非正式)
- 抽象(abstraction)的本質與常見錯誤
- 深模組(deep module):好模組的核心特徵
- 淺模組(shallow module):典型反例
- Classitis 過敏:認為「類別越多越好」的迷思
- Java 與 Unix I/O 的對比
結語#
模組化設計的核心是把介面與實作分開:
- 把實作的複雜性藏起來,使用者只需要理解介面提供的抽象
- 設計類別與其他模組時,最重要的議題就是讓它們深——常見用法的介面要簡單,但功能要強大
- 這樣才能把最大量的複雜性藏在抽象之下