- 請(qǐng)描述什么是依賴倒置原則,為什么有時(shí)候依賴倒置原則又被稱為好萊塢原則邻奠?
高層依賴不依賴低層模塊酌儒,而是去依賴接口
接口要屬于高層模塊
當(dāng)接口屬于高層模塊辜妓,由高層去調(diào)用,高層可以根據(jù)自己的使用場(chǎng)景進(jìn)行模塊接口設(shè)計(jì)或者抽象的設(shè)計(jì)
低層模塊按照高層的抽象和設(shè)計(jì)進(jìn)行實(shí)現(xiàn)
而不是自己實(shí)現(xiàn)的一個(gè)接口忌怎,寫了一個(gè)接口籍滴,寫了一個(gè)實(shí)現(xiàn),然后根據(jù)這個(gè)實(shí)現(xiàn)榴啸,抽象一個(gè)接口來(lái)供高層調(diào)用
框架的核心
好萊塢規(guī)則:don't call me I will call you
框架設(shè)計(jì)的基本技巧:
框架去調(diào)用我們的應(yīng)用程序孽惰,我們的應(yīng)用程序不會(huì)去調(diào)用框架,同時(shí)框架也不依賴我們的應(yīng)用程序
當(dāng)我們實(shí)現(xiàn)了高層模塊定義的接口或規(guī)范的時(shí)候鸥印,高層模塊就可以調(diào)用我們的代碼勋功,就可以執(zhí)行我們的代碼,但是卻不依賴我們的代碼库说,
框架主導(dǎo)了系統(tǒng)的軟件的整個(gè)結(jié)構(gòu)狂鞋、整個(gè)流程
-
請(qǐng)用接口隔離原則優(yōu)化 Cache 類的設(shè)計(jì),畫出優(yōu)化后的類圖潜的。
- 提示:cache 實(shí)現(xiàn)類中有四個(gè)方法骚揍,其中 put get delete 方法是需要暴露給應(yīng)用程序的,rebuild 方法是需要暴露給系統(tǒng)進(jìn)行遠(yuǎn)程調(diào)用的啰挪。如果將 rebuild 暴露給應(yīng)用程序信不,應(yīng)用程序可能會(huì)錯(cuò)誤調(diào)用 rebuild 方法,導(dǎo)致 cache 服務(wù)失效亡呵。按照接口隔離原則:不應(yīng)該強(qiáng)迫客戶程序依賴它們不需要的方法抽活。也就是說(shuō),應(yīng)該使 cache 類實(shí)現(xiàn)兩個(gè)接口政己,一個(gè)接口包含 get put delete 暴露給應(yīng)用程序酌壕,一個(gè)接口包含 rebuild 暴露給系統(tǒng)遠(yuǎn)程調(diào)用掏愁。從而實(shí)現(xiàn)接口隔離,使應(yīng)用程序看不到 rebuild 方法卵牍。
畫圖如下