亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

策略模式的依賴倒置和控制反轉具體應用

舉幾個例子說明下依賴倒置和控制反轉的使用!

正在回答

4 回答

首先我覺得你要清晰幾個概念:

緊耦合:

首先在 page 類中與 UserStrategy 的實例,以及策略的具體實現來達到策略的具體實現,這樣是不是 page 與?UserStrategy 緊密相關,也就是說 如果?UserStrategy 的實現修改了,例如:去掉了 showAd() 方法。page 自然需要做相應修改,這就叫做 緊耦合(依賴性太強)。

依賴倒置和控制翻轉:

page 類里不需要?UserStrategy 的具體實現,只需要知道 page 場景下需要?UserStrategy 的策略,具體策略下實現那些方法,不需要知道。這樣 page 與?UserStrategy 是離散的、低耦合的。這樣代碼的就更加穩定,可維護,以拓展。

明白了這幾個概念,我想你應該知道為什么我們需要依賴倒置和控制翻轉了。

設計模式不要為了用而用,而是應該明白為什么要用才去用

4 回復 有任何疑惑可以回復我~
#1

追逐夢想30 提問者

好的,非常感謝!
2016-08-11 回復 有任何疑惑可以回復我~
#2

奮斗de小蝸牛

我咋感覺你說得不對呢,你用一個類的方法,然后后續把這個方法刪了,那肯定需要修改啊,任何方法也做不到你把一個類的方法刪了,然后不修改調用它的地方,絕對不可能,你看能說把showAd和showcate包在一個方法里,這樣就可以了,那我要是再把這個方法刪除了呢?不還是得修改?
2020-04-02 回復 有任何疑惑可以回復我~

難道意思是實現解耦,需要新增Strategy的index方法,然后把showAd,showCategory包進去。然后在page類的index方法中只有$$this->strategy->index(),這樣就實現了無關性

0 回復 有任何疑惑可以回復我~

不明白說的是什么,緊耦合不好,需要解耦。但實際上,page類的index方法,是依賴于Strategy的showAd,showCategory()方法,如果一個方法要刪除掉,比如刪除showAd,那還是要改page類的index方法。

1 回復 有任何疑惑可以回復我~
#1

坐不住的雨傘

我覺得也是啊,如果userStrategy中刪除了一個方法,Page中的index需要修改,和最佳回答提到的緊耦合一樣啊
2019-12-28 回復 有任何疑惑可以回復我~

好的,非常感謝!

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

策略模式的依賴倒置和控制反轉具體應用

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號