what:High level modules should note depend upon low level modules.both should depend
高層模塊不應(yīng)該依賴底層模塊棘劣,兩者都應(yīng)該其抽象
抽象不應(yīng)該依賴細(xì)節(jié)
細(xì)節(jié)應(yīng)該依賴抽象
模塊間的依賴通過抽象發(fā)生,實現(xiàn)類之間不發(fā)生直接的依賴關(guān)系我纪,起依賴關(guān)系是通過接口或抽象類產(chǎn)生内地。
接口或抽象類不依賴于實現(xiàn)類
實現(xiàn)類依賴接口或抽象嗤攻。
How:
1.構(gòu)造函數(shù)傳遞依賴對象
2.setter方法傳遞依賴對象
3.接口生命依賴對象
why:
每個類盡量都有接口或抽象類,或者抽象類和接口兩者都具備
變量的表面類型盡量是接口或者抽象類
任何類都不應(yīng)該從具體類派生
盡量不要覆寫基類
結(jié)合里氏替換原則使用