官术网_书友最值得收藏!

3.1 依賴倒置原則的定義

依賴倒置原則(Dependence Inversion Principle,DIP)這個(gè)名字看著有點(diǎn)別扭,“依賴”還“倒置”,這到底是什么意思?依賴倒置原則的原始定義是:

High level modules should not depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.

翻譯過(guò)來(lái),包含三層含義:

?高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴其抽象;

?抽象不應(yīng)該依賴細(xì)節(jié);

?細(xì)節(jié)應(yīng)該依賴抽象。

高層模塊和低層模塊容易理解,每一個(gè)邏輯的實(shí)現(xiàn)都是由原子邏輯組成的,不可分割的原子邏輯就是低層模塊,原子邏輯的再組裝就是高層模塊。那什么是抽象?什么又是細(xì)節(jié)呢?在Java語(yǔ)言中,抽象就是指接口或抽象類,兩者都是不能直接被實(shí)例化的;細(xì)節(jié)就是實(shí)現(xiàn)類,實(shí)現(xiàn)接口或繼承抽象類而產(chǎn)生的類就是細(xì)節(jié),其特點(diǎn)就是可以直接被實(shí)例化,也就是可以加上一個(gè)關(guān)鍵字new產(chǎn)生一個(gè)對(duì)象。依賴倒置原則在Java語(yǔ)言中的表現(xiàn)就是:

?模塊間的依賴通過(guò)抽象發(fā)生,實(shí)現(xiàn)類之間不發(fā)生直接的依賴關(guān)系,其依賴關(guān)系是通過(guò)接口或抽象類產(chǎn)生的;

?接口或抽象類不依賴于實(shí)現(xiàn)類;

?實(shí)現(xiàn)類依賴接口或抽象類。

更加精簡(jiǎn)的定義就是“面向接口編程”—OOD(Object-Oriented Design,面向?qū)ο笤O(shè)計(jì))的精髓之一。

主站蜘蛛池模板: 云和县| 深泽县| 平远县| 桦南县| 新安县| 离岛区| 密山市| 五大连池市| 布拖县| 泾川县| 徐水县| 西峡县| 道孚县| 双峰县| 三台县| 马尔康县| 定日县| 渭南市| 腾冲县| 满城县| 儋州市| 兴国县| 大石桥市| 松溪县| 阿拉善右旗| 余姚市| 富民县| 舞钢市| 凤山市| 东莞市| 固阳县| 琼结县| 新民市| 会昌县| 长子县| 平乐县| 富川| 淮滨县| 资源县| 固原市| 卓资县|