設(shè)計模式需要遵循的幾種設(shè)計原則(二)

依賴倒轉(zhuǎn)原則
概念:
A:高層模塊不應(yīng)該依賴地層模塊,兩個都應(yīng)該依賴抽象.
B:抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象.
C:針對接口編程,不能針對實現(xiàn)編程.
通俗解釋:
假設(shè)現(xiàn)在電腦壞了,我們肯定要逐個排查到底是哪個地方壞了,然后把壞掉的部分拔掉換成好的,設(shè)想一下假如不能換部件,有一個地方壞了就得全部換,那是不是一件很蛋疼的事情.而我們的電腦主板在設(shè)計的時候就預(yù)留了接口,這就是遵循了依賴倒轉(zhuǎn)原則,我不會因為風(fēng)扇壞了就去換主板,也不會因為主板壞了去把其他的零件換一個遍,其實這些都是一些概念性的東西,說起來簡單做起來難,大致大家都明白,但是一到細(xì)節(jié)就懵逼.

里氏代換原則
概念:子類必須能夠替換掉他們的父類型.
通俗解釋:
一個軟件實體如果使用的是一個父類的話,那么一定適用于其子類,而且它察覺不出父類對象和子類對象的區(qū)別.也就是說,把父類都替換成它的子類,程序的行為沒有變化.也正是這個原則,使得繼承復(fù)用成為了可能,只有當(dāng)子類可以替換掉父類,軟件功能不受影響的時候,父類才能真正被復(fù)用,而子類也能在父類的基礎(chǔ)上增加新的行為.假如子類不做重寫,那么它調(diào)用父類方法的時候其實就是多態(tài)的體現(xiàn)(向上轉(zhuǎn)型).
正是由于里氏代換原則,才使得開放-封閉原則成為了可能,由于子類型的可替換性才使得父類類型的模塊在無需修改的情況下就可以拓展,不然還談什么拓展開放,修改關(guān)閉呢,再回頭看看依賴倒轉(zhuǎn)原則,高層模塊不應(yīng)該依賴低層模塊,講的不就是繼承嗎,我子類不管自己改的再花會影響到父類以及我父類的另一個兒子嗎,顯然是不可能的.

總結(jié):
依賴倒轉(zhuǎn)其實可以說是面向?qū)ο笤O(shè)計的標(biāo)志,用什么語言來寫程序不重要,如果編寫時考慮的都是如何針對抽象編程而不是針對細(xì)節(jié)編程,即程序中的所有的依賴關(guān)系都是終止于抽象類或者接口,那就是面向?qū)ο蟮脑O(shè)計,反之那就是過程化的設(shè)計了.

后話:
這個是我一邊看著<<大話設(shè)計模式>>一邊理解總結(jié)加摘抄寫的筆記,但愿自己沒事兒回頭了還能看看感慨一下,哈哈?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容