2008-12-23 39 views

回答

6

當您使用策略模式時,您希望其他類依賴於接口而不是具體的策略。做到這一點的一種方法是將具體策略注入到一個將它用作界面的類中,而不是讓班級理解如何創建適當的策略。這是IoC /依賴注入的地方。

這個想法可能是你有某種配置或決策類來定義使用哪種策略。這可能是一個IoC框架,但它不一定非要。該類負責根據系統狀態或配置使用適當策略配置其他類。具體策略是通過構造函數或屬性設置器創建和注入的,因此對實例化策略類的「控制」是「倒置的」 - 它不是由類取決於它而是從外部完成的。

2

它本身並沒有引入控制反轉。如果模式的開發者實現它,以便可交換算法被注入到控制器中,那麼就是反轉。另一方面,如果實現者從其他某個源獲得算法(如配置,或者通過其他方法在控制器的構造函數中確定它),那麼這只是您的普通型的代碼。

-1

IOC可以被看作是一個主要的(結束),可以是使用戰略模式(手段)作爲服務協商者模式可能是另一種選擇。

+1

究竟是什麼意思大聲笑.. – brumScouse 2011-11-03 13:57:51

相關問題