- 單一職責原則(SRP):一個類應該只有一個引起它變化的原因,即一個類應該只負責一項職責。例如,一個 Person 類,它應該只負責和 Person 相關的工作,而不應該去處理其他無關的工作。
- 開放封閉原則(OCP):軟體實體應該對擴展開放,對修改封閉。例如,定義一個圖形類,然後讓不同類型的圖形繼承這個類,而不需要修改圖形類本身。
- 里氏替換原則(LSP):子類對象應該能夠替換掉所有父類對象。
- 接口隔離原則(ISP):客戶端不應該依賴那些它不需要的接口,即接口應該是小而專的。
- 依賴倒置原則(DIP):高層模組不應該依賴底層模組,兩者都應該依賴於抽象;抽象不應該依賴於細節,細節應該依賴於抽象。例如,一個公司類包含部門類,應該考慮使用組合關係,而不是繼承關係。
- 迪米特法則(Law of Demeter):一個對象應當對其他對象有最少的了解,只和其直接的朋友互動。