溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

依賴(lài)倒置原則的理解

發(fā)布時(shí)間:2020-04-07 10:12:20 來(lái)源:網(wǎng)絡(luò) 閱讀:1236 作者:qingliangdexiar 欄目:開(kāi)發(fā)技術(shù)


1.問(wèn)題由來(lái):類(lèi)A直接依賴(lài)類(lèi)B,假如要將類(lèi)A改為依賴(lài)類(lèi)C,則必須通過(guò)修改類(lèi)A的代碼來(lái)達(dá)成。這種場(chǎng)景下,類(lèi)A一般是高層模塊,負(fù)責(zé)復(fù)雜的業(yè)務(wù)邏輯;類(lèi)B和類(lèi)C是低層模塊,負(fù)責(zé)基本的原子操作;假如修改類(lèi)A,會(huì)給程序帶來(lái)不必要的風(fēng)險(xiǎn)。

2.解決方案:將類(lèi)A修改為依賴(lài)接口I,類(lèi)B和類(lèi)C各自實(shí)現(xiàn)接口I,類(lèi)A通過(guò)接口I間接與類(lèi)B或者類(lèi)C發(fā)生聯(lián)系,則會(huì)大大降低修改類(lèi)A的幾率。(其實(shí)換成接口,可能下面的很多代碼都不需要變了,如果還是A,B的對(duì)象實(shí)例,那么下面的代碼可能會(huì)發(fā)生修改。)

3.依賴(lài)倒置原則針對(duì)的是接口編程。

4.對(duì)于容易發(fā)生的變化的地方,提供接口,接口具有高度抽象性,讓其進(jìn)行接收,這樣就可以極大的減少修改高層模塊中的代碼。

上面的僅僅是純概念本身的理解:

以下是貨真價(jià)實(shí)的理解。

繼承的作用是復(fù)用前人寫(xiě)的代碼

多態(tài)的作用是前人寫(xiě)好的框架,該框架可以調(diào)用后來(lái)人寫(xiě)好的代碼。這正是設(shè)計(jì)模式的精髓。想想也是。(這就是可擴(kuò)展,這是不是很厲害)。

舉例說(shuō)明:

假設(shè)計(jì)算機(jī)有3大重要部件:cpu,硬盤(pán),內(nèi)存條

為了能夠讓計(jì)算機(jī)能夠和三大部件進(jìn)行解耦合,意思就是計(jì)算機(jī)可以安裝任何型號(hào)的cpu,硬盤(pán),內(nèi)存條。設(shè)計(jì)原則就是讓計(jì)算機(jī)依賴(lài)三大部件(高層依賴(lài)于抽象層),讓實(shí)現(xiàn)層依賴(lài)于抽象層,各種類(lèi)型的cpu去繼承抽象層,這樣達(dá)到了高層和實(shí)現(xiàn)層的解耦合,也讓實(shí)現(xiàn)層和實(shí)現(xiàn)層之間解耦合。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI