在Kozmic的博客(2009年)上,他建議通用工廠從容器中檢索物體。那麼,這對我來說就像是一個僞服務定位器。所以我想問一下這裏的專家的意見。Castle Windsor Generic Typed Factory
public interface IGenericFactory
{
T Create<T>();
}
我可以用它從Windsor容器中取物件嗎?這種方法有什麼缺點嗎?
更新:
其實,我想用它來獲取我不想創建多個工廠只有幾個瞬間。所有這些場景都有一個工廠。
@ w0lf-使用通用工廠方法,我不必在我的代碼中引用容器。我把它註冊爲一個打字工廠和繁榮。注入工廠並獲得您想要的任何東西! (實際上,我想用它來獲取我不想創建多個工廠的幾個瞬變)。我想確定這是好事還是壞事? – user1178376 2012-04-18 21:45:51
@ user1178376該方法的問題在於它實際上是一個抽象服務定位器,可以輕鬆隱藏類的依賴關係。爲了避免這種情況及其引起的維護問題,請嘗試使用普通的構造函數注入和專門的工廠。 – GolfWolf 2012-04-19 07:02:20
另請注意Nicholas Blumhardt的評論。他非常清楚地描述了這一點:「它可以嘗試創建字面上的任何東西 - 這會使維護和測試變得更加困難。」 – Steven 2013-07-12 11:45:07