1、單一職責原則
單一職責原則英文名稱是Single Responsibility Principle,簡稱SRP。
There should never be more than one reason for a calss to change.(有且只有一個原因引起類的變更。)
接口一定要做到單一職責,類的設計盡量做到只有一個原因引起變化。
2、里氏替換原則
里氏替換原則的英文名稱是Liskov Substitution Principle,簡稱SLP。
簡單的說,就是父類實現的方法子類一定都要實現,在一個地方調用父類可以完成的工作,替換成子類也一定能夠完成。
包含4層含義:子類必須完全實現父類的方法;子類可以擁有個性;覆蓋或實現父類方法時輸入參數可以被放大(參數類型的基類);輸出結果可以被縮小(參數類型的子類)。
3、依賴倒置原則
依賴倒置原則(Dependence Inversion Principle),簡稱DIP。
High level modules shoud not depend upon low level modules.Both shoud depend upon abstractions.Abstractions shoud not depend upon details.Details shoud depend upon abstractions.
簡單的解釋為:高層模塊不應該依賴底層模塊,二者應該依賴抽象類。抽象不應該依賴細節,細節應該依賴抽象。
依賴倒置原則是面向對象(OO)編程的精髓。
4、接口隔離原則
接口隔離原則英文縮寫ISP,全稱Interface Segregation Principle。
解決胖接口問題,把不同業務邏輯拆分成不同的接口,避免不必須的實現。
5、迪米特法則
迪米特法則(Law of Demeter,LoD),也稱為最小只是原則(Least Knowledge Principle,LKP)。
一個對象應該對其他對象有最少的了解(低耦合)。
6、開閉原則
Software entities like classes,modules and functions shoud be open for extension but closed for modifications.
一個軟件實體如類、模塊和函數應該對擴展開放,對修改關閉。
一個軟件實體應該通過擴展來實現變化,而不是通過修改已有的代碼來實現變化。
