今日業界普遍不重視深類別。
主流的「常識」是:類別應該小,而不是深。
主流教學的偏差#
學生常被教導:
- 設計類別最重要的事是「把大類別拆成小類別」
- 「任何超過 N 行的方法都應該被拆成多個方法」(N 可低至 10)
這種做法的後果:大量淺類別與淺方法,反而推高整體系統複雜度。
Classitis 是什麼#
「越多類別越好」這種錯誤觀念的極端版本,作者稱之為 classitis(類別過敏):
- 認為「類別是好東西,所以類別越多越好」
- 鼓勵每個新類別只承載最少功能
- 想要更多功能?再開新類別
Classitis 的後果#
| 看似 | 實際 |
|---|---|
| 每個類別都很簡單 | 整體系統複雜度反而提高 |
| 「乾淨」的單一職責 | 介面數量爆炸 |
| 類別容易理解 | 介面互相累積,總體認知負擔極高 |
小類別的內含功能不多 → 必須有很多個 → 每個都有自己的介面 → 介面總和形成系統層級的巨大複雜度。
此外,每個類別都帶有樣板程式碼(boilerplate),導致風格冗長囉嗦。