面向對象設計原則是構建高內聚、低耦合、可擴展系統的指南針。本文彙總七大核心原則,附帶一句話精髓,便於日常設計決策時快速檢索。
- 單一職責原則 (SRP):一個類只做一件事,引起變化的原因只有一個。
- 里氏替換原則 (LSP):子類必須能無縫替換父類,違反則不應建立繼承關係。
- 依賴倒置原則 (DIP):高層模塊不依賴低層模塊,雙方依賴抽象;抽象不依賴細節,細節依賴抽象。
- 接口隔離原則 (ISP):接口要小而專,寧可多個專用接口,不可一個臃腫通用接口。
- 開閉原則 (OCP):對擴展開放,對修改關閉;通過抽象實現熱插拔式擴展。
- 合成/聚合復用原則 (CARP):優先使用組合/聚合復用代碼,少用繼承;Has-A 優於 Is-A。
- 迪米特法則 (LoD):最少知識原則,只與直接朋友溝通,降低耦合,提高內聚。
記憶口訣
單一職責分得清,里氏替換不違承;
依賴倒置靠抽象,接口隔離要專精;
開放擴展關閉改,合成聚合少用繼;
迪米特法則低耦合,高內聚代碼更靈。
實踐提示
- 原則非教條,權衡取捨視項目規模與變化率而定
- 小項目、原型階段可適度妥協,核心域模型嚴守
- 代碼審查時以原則為檢視清單,發現「味道」重構
內化於心,外化於碼。七大原則,寫出經得起時間考驗的代碼。