一狞悲、單一職責(zé)原則
- Single Responsibility Principle障本,簡稱SRP锡搜。
- 單一職責(zé)原則的定義是:應(yīng)該有且僅有一個原因引起類的變更。
二署驻、里氏替換原則
- Liskov Substitution Principle,LSP
- 定義1:如果每一個類型為S的對象o1奋献,都有類型為T的對象o2,使得以T定義的所有程序P在所在的對象o1都代換成o2時旺上,程序P的行為沒有發(fā)生變化瓶蚂,那么類型S是類型T的子類型。
- 定義2:所有引用基類的地方必須能透明的使用其子類的對象宣吱。
三窃这、依賴倒置原則
- Dependence Inversion Principle,DIP
- 高層模塊不應(yīng)該依賴底層模塊征候,兩者都應(yīng)該依賴其抽象
- 抽象不應(yīng)該依賴細(xì)節(jié)
- 細(xì)節(jié)應(yīng)該依賴抽象
- 依賴倒置原則在Java語言中的表現(xiàn)就是:
- 模塊間的依賴通過抽象發(fā)生杭攻,實現(xiàn)類直接不發(fā)生直接的依賴關(guān)系祟敛,其依賴關(guān)系是通過接口或抽象類產(chǎn)生的
- 接口或抽象類不依賴于實現(xiàn)類
- 實現(xiàn)類依賴接口或抽象類
四、接口隔離原則
- 客戶端不應(yīng)該依賴他不需要的接口
- 類間的依賴關(guān)系應(yīng)該建立在最小的接口上
五兆解、迪米特法則
- Law of Demeter馆铁,LoD,也稱最少知識原則(Least Knowledge Principle锅睛,LKP)
- 一個對象應(yīng)該對其他對象有最少的了解
六埠巨、開閉原則
- 一個軟件實體如類、模塊和函數(shù)應(yīng)該對擴(kuò)展開放现拒,對修改關(guān)閉