常見的面向對象設計原則
- 單一職責原則 SRP
一個類應該僅有一個引起它變化的原因。 - 開放關閉原則 OCP
一個類應該對外擴展開放,對修改關閉。 - 里氏替換原則 LSP
子類型能夠替換掉它們的父類型。 - 依賴倒置原則 DIP
要依賴於抽象,不要依賴於具體類,要做到依賴倒置,應該做到:
- 高層模塊不應該依賴底層模塊,二者都應該依賴於抽象。
- 抽象不應該依賴於具體實現,具體實現應該依賴於抽象。
- 接口隔離原則 ISP
不應該強迫客戶依賴於他們不用的方法。 - 最少知識原則 LKP
只和你的朋友談話。 - 其他原則
- 面向接口編程
- 優先使用組合,而非繼承
- 一個類需要的數據應該隱藏在類的內部
- 類之間應該零耦合,或者只有傳導耦合,換句話說,類之間要麼沒關係,要麼只使用另一個類的接口提供的操作
- 在水平方向上儘可能統一地分佈系統功能