- 設(shè)計(jì)模式之禪
- 秦小波
- 450字
- 2019-01-02 03:55:46
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ì))的精髓之一。
- VMware View Security Essentials
- Visual C++程序設(shè)計(jì)學(xué)習(xí)筆記
- Oracle Exadata性能優(yōu)化
- Java 9 Programming Blueprints
- Functional Programming in JavaScript
- IBM Cognos Business Intelligence 10.1 Dashboarding cookbook
- Access 2010中文版項(xiàng)目教程
- Domain-Driven Design in PHP
- Go語(yǔ)言底層原理剖析
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)訓(xùn)教程
- Functional Python Programming
- Android熱門應(yīng)用開(kāi)發(fā)詳解
- MATLAB計(jì)算機(jī)視覺(jué)實(shí)戰(zhàn)
- Building Microservices with .NET Core 2.0(Second Edition)
- Java Web程序員面試筆試寶典