第 4 章主張「模組應該深」。本章與接下來幾章都在討論怎麼把模組做深——其中最重要的技巧就是資訊隱藏(information hiding)。
本章脈絡#
- 資訊隱藏:什麼是資訊隱藏?為什麼能讓模組變深
- 資訊洩漏(information leakage):資訊隱藏的反面
- 時序分解(temporal decomposition):常見的資訊洩漏陷阱
- HTTP 伺服器案例:以軟體設計課的學生實作為例,看好設計與壞設計
- 類別內部的資訊隱藏:把原則往內套
- 過猶不及:什麼情況下資訊不該被隱藏
結語#
資訊隱藏與深模組是連體嬰。
- 模組隱藏越多資訊 → 提供的功能變多、介面變窄 → 變得更深
- 模組沒隱藏多少資訊 → 要嘛功能不多,要嘛介面複雜 → 無論哪種都是淺模組
把系統拆成模組時:
- 不要被「執行階段操作的順序」牽著走 → 那會走上時序分解、資訊洩漏與淺模組的死路
- 應該思考完成任務需要哪些片段的知識,每個模組封裝其中一個或少數幾個 → 自然產生乾淨而深的設計