我是新來的依賴注入,我試圖解決一個問題。我有兩個服務。這些服務中的每一種都有需要彼此的方法。兩個服務依賴於彼此(stackoverflow例外) - 如何解決?
例如:SiteManager
有方法,它需要我的ForumManager
。我的ForumManager
有它需要我的SiteManager
的方法。
我有以下兩類:
public class SiteManager:ISiteManager
{
public IForumManager ForumManager { get; set; }
public SiteManager()
{
this.ForumManager = new ForumManager();
}
}
public class ForumManager:IForumManager
{
public ISiteManager SiteManager { get; set; }
public ForumManager()
{
this.SiteManager = new SiteManager();
}
}
很顯然,這將導致堆棧溢出異常,因爲他們所謂的海誓山盟。我在這裏看過很多帖子,我想我只需要一點小小的提示就可以解決這個問題。我在他們自己的程序集中有我的接口。
我想過把依賴關係放在他們自己的屬性中,所以當他們被使用時,他們就成了。不過,這是最佳做法嗎?
我沒有使用IoC容器(我之前沒有使用過)。
有關如何以「最佳實踐」方式解決此特定問題的任何提示! :-)
一個「*管理器」實例化沒有參數聽起來像某些不太可能需要多個實例。使他們單身對象,並繞過這個問題完全? – Phoshi
如何使用繼承有一個擁有所有常用方法的經理類? – TheKingDave
這聽起來像你有一個錯位的責任。爲什麼ForumManager需要引用SiteManager?反之亦然? – MattDavey