任何人都可以準確解釋戰略模式如何與控制反轉相關嗎?任何人都可以解釋戰略模式如何與控制反轉相關嗎?
3
A
回答
6
當您使用策略模式時,您希望其他類依賴於接口而不是具體的策略。做到這一點的一種方法是將具體策略注入到一個將它用作界面的類中,而不是讓班級理解如何創建適當的策略。這是IoC /依賴注入的地方。
這個想法可能是你有某種配置或決策類來定義使用哪種策略。這可能是一個IoC框架,但它不一定非要。該類負責根據系統狀態或配置使用適當策略配置其他類。具體策略是通過構造函數或屬性設置器創建和注入的,因此對實例化策略類的「控制」是「倒置的」 - 它不是由類取決於它而是從外部完成的。
2
它本身並沒有引入控制反轉。如果模式的開發者實現它,以便可交換算法被注入到控制器中,那麼就是反轉。另一方面,如果實現者從其他某個源獲得算法(如配置,或者通過其他方法在控制器的構造函數中確定它),那麼這只是您的普通型的代碼。
0
沒有國際奧委會是一個不同的東西放在一起,你可以閱讀更多關於IOC和DI這裏得到最高的實際想法
-1
IOC可以被看作是一個主要的(結束),可以是使用戰略模式(手段)作爲服務協商者模式可能是另一種選擇。
相關問題
- 1. 任何人都可以解釋OAuth嗎?
- 2. 任何人都可以解釋python的相對導入嗎?
- 3. 任何人都可以解釋我StandardScaler?
- 4. 任何人都可以解釋「視場」
- 5. 任何人都可以解釋輸出
- 6. 任何人都可以爲我解釋這個ACL模式
- 7. 任何人都可以解釋以下語句的輸出嗎?
- 8. 任何人都可以解釋下面的代碼嗎?
- 9. 任何人都可以解釋我這個代碼行嗎?
- 10. 任何人都可以解釋下面的代碼嗎?
- 11. 任何人都可以在C中解釋這個結構嗎?
- 12. 任何人都可以解釋默認括號的含義嗎?
- 13. 任何人都可以解釋這種語法嗎?
- 14. 任何人都可以解釋UriMatcher(Android SDK)嗎?
- 15. 任何人都可以向Entity Framework生命週期解釋嗎?
- 16. 任何人都可以解釋我這個javax swing方法嗎?
- 17. Lua任何人都可以解釋這是什麼嗎?
- 18. Javascript:任何人都可以解釋我這段代碼嗎?
- 19. C編程,任何人都可以解釋這一點嗎?
- 20. 任何人都可以解釋我的這段代碼嗎?
- 21. 任何人都可以請解釋下面一段Flash ActionScript嗎?
- 22. 任何人都可以用英語向我解釋這個嗎?
- 23. 任何人都可以解釋服務setForeground方法嗎?
- 24. 任何人都可以解釋一下微軟的CDN嗎?
- 25. 任何人都可以解釋這段代碼嗎?
- 26. 任何人都可以解釋這個程序的輸出嗎?
- 27. 任何人都可以用示例解釋string.compare(_:options:range:locale :)嗎?
- 28. 任何人都可以解釋我這個功能嗎?
- 29. 任何人都可以幫助解釋這個嗎?
- 30. Java Puzzler - 任何人都可以解釋這種行爲嗎?
究竟是什麼意思大聲笑.. – brumScouse 2011-11-03 13:57:51