亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

什么是依賴

系統 2466 0

舉例說明:

電腦主板要工作就得依賴于CPU、內存、風扇、聲卡、網卡等等,如果其中某個零部件壞了,那么需要把整個主板換掉么?當然不是。

下面的例子是展示 電腦主板和CPU、內存、風扇、聲卡、網卡存在非常強耦合的例子?

?public class KeyBoard
??? {
??????? private CPU cpu;
??????? private Memeory memory;
??????? private SoundCard soundCard;

??????? public KeyBoard()
??????? {
??????????? cpu = new CPU();??????????????????????? ?//依賴于具體類
??????????? memory = new Memeory();???????????//依賴于具體類
??????????? soundCard = new SoundCard();????//依賴于具體類
??????? }

??????? public void work()
??????? {
??????????? cpu.work();
??????????? memory.work();
??????????? soundCard.work();
??????? }
??? }
??? class CPU
??? {
??????? public void work()
??????? {
??????????? //CPU工作
??????? }
??? }
??? class Memeory
??? {
??????? public void work()
??????? {
??????????? //內存工作
??????? }
??? }

??? class SoundCard
??? {
??????? public void work()
??????? {
??????????? //聲卡工作
??????? }
??? }

正如前面的注釋,由于KeyBoard依賴于具體的類,也就是主板依賴據特定型號的CPU,那么當CPU壞掉時,要更換另外一種型號的CPU,程序員要做的就是修改這個KeyBoard類,沒有做到對修改關閉,對擴展開放。程序維護起來是相當麻煩的。所以就需要將KeyBoard類與具體類解耦,因為主板是相對穩定的,某個零部件有問題的話,不需要更換主板。如何解耦呢?KeyBoard類需要依賴于抽象類或者接口,因為這些東西都是穩定的,所以穩定的東西應該依賴于穩定的東西,不穩定的東西也應該依賴于穩定的東西,這個穩定的東西可以是抽象類,也可以是接口。

具體方法如下:將KeyBoard的零部件都抽象出來,CPU抽象出AbstractCPU,Memory抽象出AbstractMemory,當然其中必須有個多態的方法Work,這樣每個子類再實現這些方法即可,在這里用到了依賴注入技術,可以通過構造函數注入,也可以通過第三方注入。

通過構造函數注入的方法如下:

public KeyBoard(AbstractCPU cpu, AbstractMemory memory, AbstractSoundCard soundCard)
??????? {
??????????? this.cpu = cpu;
??????????? this.memory = memory;
??????????? this.soundCard = soundCard;
??????? }

這樣就實現了解耦,如果需求發生變化,這個KeyBoard類就不用修改,就不用更換主板了,需要做的是Client在調用的時候需要具體類的注入,Client調用如下:

class Client
??? {
??????? private void work()
??????? {
??????????? AbstractCPU cpu = new CPU();????????????????????????????????????????????????????//以后發生需求的變化,可以替換此處具體的類,而不需要更換主板,提高???
??????????? AbstractMemory memory = new Memeory();??????????????????????????????????//了程序的擴展性,也做到了對修改封閉,對擴展開發。大大提高了程序的靈
??????????? AbstractSoundCard soundCard = new SoundCard();??????????????????????//活性,有利于代碼后期維護。這才是真正的面向對象編程。
??????????? KeyBoard keyBoard = new KeyBoard(cpu, memory, soundCard);
??????????? keyBoard.work();
??????? }
??? }

?

?

什么是依賴


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 丰满寡妇一级毛片 | 免费日韩精品 | 中文字幕亚洲国产 | 久久日本经典片免费看 | 久久精品国产在热久久2019 | 亚洲综合日韩在线亚洲欧美专区 | 97色伦影院 | 青青青国产手机免费视频 | 天天综合天天添夜夜添狠狠添 | 日日摸夜夜添夜夜添人人爽 | 亚洲高清在线mv | 欧美片欧美日韩国产综合片 | 色天天色综合 | 毛片大全高清免费 | 91久久在线 | 免费h片在线观看 | 亚洲成人综合网站 | 美女久久 | 亚洲成年人免费网站 | 日产精品一区二区 | 国产全黄a一级毛片 | 亚洲精品乱码久久久久久中文字幕 | 久久久久久久久免费视频 | 不卡国产在线 | 婷婷亚洲激情 | 色偷偷亚洲女性天堂 | 特级毛片全部免费播放a一级 | 欧美日本一级在线播放 | 国产成人毛片视频不卡在线 | 国内精品自在自线在免费 | 亚洲成人免费视频 | 久久精品亚洲精品国产欧美 | 亚洲一区二区三区高清网 | 成人免费久久精品国产片久久影院 | 国产女主播在线视频 | 麻豆精品成人免费国产片 | 亚洲福利一区二区三区 | 毛茸茸性毛茸茸大b | 欧美毛片日韩一级在线 | 亚洲国产精品毛片∧v卡在线 | 久草精品在线观看 |