通過我的(可能是微薄的)理解,在你的控制器的方法的中間這樣做/演講被認爲是不好的做法,因爲它創建StructureMap和您的主持人之間的依賴關係最佳實踐:IOC(StructureMap)
void Override() {
ICommentForOverrideGetter comm = StructureMap.ObjectFactory.GetInstance<ICommentForOverrideGetter>();
由於這種依賴性應通過構造函數注入演示者,並使用IoC容器將其連接起來。在這種情況下,儘管每次運行此方法時我的代碼都需要ICommentForOverrideGetter
的全新副本。這是上述最佳實踐的例外,還是我應該重新考慮我的架構的情況?
我絕對喜歡這種說法(來自David Wheeler)。我知道我可以做到這一點,但男孩,這似乎太簡單的東西太多的開銷。 IoC容器是否應該像您所描述的那樣消除對工廠的需求? – 2010-09-20 15:21:16
IoC電話並不是特別困擾我,我只是想了解更多關於IoC最佳做法。當我認爲複雜度/效益比太高時,我毫無疑問地忽視了最佳實踐,我只是想確保沒有其他東西丟失。 – 2010-09-20 15:22:57
個人而言,我只是不希望在演示者中對IoC容器產生嚴重依賴(或者更普遍:我想單元測試的類)。 – Maxem 2010-09-20 15:25:01