所以我有這個應用程序,即使用IOC(autofac)。同時,我發現自己處於需要工廠的位置。在工廠內部,我創建了具有依賴性的新對象 - 所以現在我想知道,我怎麼能結婚呢?工廠和國際石油公司一起 - 如何使用兩者?
public class SubscriptionHandlerFactory : ISubscriptionHandlerFactory
{
public ISubscriptionHandler GetProvider(StreamType streamType)
{
switch (streamType)
{
case StreamType.Rss:
return new RssSubscriptionHandler(null,null,null,null);
case StreamType.Person:
return new PersonSubscriptionHandler(null, null, null, null);
default:
throw new ArgumentOutOfRangeException(nameof(streamType), streamType, null);
}
}
}
注入的IoC容器進工廠,然後使用暴露的方法來獲取所需的具體類型的實例。然後容器將爲您解析其他依賴關係。 –
@MartinCostello這是一個服務定位器,很大程度上被認爲是反模式,即使在工廠內完成。 –
你確定你需要一個工廠嗎?爲什麼你確定你不能讓IoC容器爲你構建對象依賴關係圖? –