開閉原則:對修改封閉,對拓展開放。
單一職責原則:類的功能要專一。
里氏代換原則:子類繼承父類的時候,除添加新的方法完成新增功能外,盡量不要重寫父類方法。
依賴倒轉原則:類要依賴接口,而不要依賴具體的類。
接口隔離原則:接口的功能也要單一,避免接口功能太多。
合成復用原則:盡量先使用組合或者聚合等關聯關系來實現,其次才考慮使用繼承關系來實現。
迪米特原則:最小知道
- 如果兩個類不必彼此直接通信,那么這兩個類就不應當發生直接的相互作用。如果其中的一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。
- 朋友圈的確定“朋友”條件:出現在成員變量、方法的輸入輸出參數中的類稱為成員朋友類。