管理軟體複雜性最重要的技巧之一:讓開發者在任何時刻都只需要面對整體複雜性的一小部分

這就是模組化設計(modular design)的精神。

本章脈絡#

本章從模組化設計的最基本原則談起,依序討論:

  1. 何謂模組化設計,以及介面 / 實作的拆分
  2. 介面裡到底裝了哪些資訊(正式 vs. 非正式)
  3. 抽象(abstraction)的本質與常見錯誤
  4. 深模組(deep module):好模組的核心特徵
  5. 淺模組(shallow module):典型反例
  6. Classitis 過敏:認為「類別越多越好」的迷思
  7. Java 與 Unix I/O 的對比

結語#

模組化設計的核心是把介面與實作分開:

  • 把實作的複雜性藏起來,使用者只需要理解介面提供的抽象
  • 設計類別與其他模組時,最重要的議題就是讓它們深——常見用法的介面要簡單,但功能要強大
  • 這樣才能把最大量的複雜性藏在抽象之下