-
Single Responsibility Principle, SRP
-
核心思想:解耦和增強內聚性(高內聚,低耦合)
-
類被修改的幾率很大,因此應該專注於單一的功能。如果你把多個功能放在同一個類中,功能之間就形成了關聯,改變其中一個功能,有可能中止另一個功能,這時就需要新一輪的測試來避免可能出現的問題
原則二:開閉原則
-
Open-Closed Principle, OCP
-
核心思想:對擴展開放,對修改關閉
-
擴展開放:模塊添加新功能,不改變原有的代碼
-
修改關閉:某模塊被其他模塊調用,如果該模塊的源代碼不允許修改,則該模塊修改關閉的
原則三:里氏替換原則
-
Liskov Substitution Principle, LSP
-
核心思想:任何父類出現的地方,子類都可以替代出現
原則四:依賴倒轉原則
-
Dependence Inversion Principle, DIP
-
核心思想:要依賴於抽象,不要依賴於具體的實現
原則五:接口分離原則
-
Interface Segregation Principle, ISP
-
核心思想:不應該強迫客戶程序依賴他們不需要使用的方法
-
一個接口不需要提供太多的行為,一個接口應該只提供一種對外的功能,不應該把所有的操作都封裝到一個接口當中
原則六:合成復用原則
-
Composite Reuse Principle, CRP
-
核心思想:盡量使用對象組合,而不是繼承來達到復用的目的
-
繼承關系是強耦合,組合關系是低耦合
原則七:迪米特原則
-
Law of Demeter, LoD
-
又稱最少知識原則
-
核心思想:一個對象應當對其他對象有盡可能少的了解,不和陌生人說話
-
降低各個對象之間的耦合,提高系統的可維護性