《設計模式》一書的所有方案都圍繞「程式演進時會發生什麼變化」這一核心問題。這也是任何軟體設計最關鍵的問題。若能根據此問題的答案構建系統,將獲得雙重收益:系統更易維護(成本更低),並產出可復用物件,進而降低相關系統的建構成本。這正是物件導向設計的真正優勢,但它不會自動顯現——需要對問題領域有全面深入的理解。
以回收系統為例,「什麼會變化」的答案很明確:**會加入更多廢料類型**。因此設計目標是**極簡化新類型的添加過程**。
將所有涉及特定類型資訊的程式碼集中封裝。這樣:
優秀的設計不是預測未來,而是**為變化做好準備**。透過持續重構,將易變點封裝成獨立模組,系統才能在需求演進中保持靈活與穩健。這正是「改進設計」的真諦:在演進中不斷提煉穩定核心,隔離易變邊緣。