如果我有一個由多個圖層組成的應用程序,它定義爲解決方案中的多個項目,可以讓圖層直接在上方/下方引用圖層嗎?或者,應該使用依賴注入來消除這種需求嗎?在多層體系結構中,可以讓相鄰層相互引用嗎?
我在建議一個更具體的問題,我問here,但我想要更多的一般性建議。
我該如何着手在VS2010中設置這樣的項目?我需要一個第三個項目,以容納DI東西(我使用Ninject)
編輯:例如
這裏是我的兩個層的一個例子。第一層具有IUnitOfWork接口,第二層具有實現所述接口的類。按照這種方式安裝,除非第2層有對第1層的引用,否則該項目不會生成。我該如何避免這種情況?或者,我應該甚至不擔心引用,因爲這些圖層是彼此相鄰的,所以不要單獨放置它?
1個
public interface IUnitOfWork
{
void Save();
}
2層
public DataContext : IUnitOfWork
{
public void Save()
{
SaveChanged(); //...
}
}
感謝您的迴應。我已閱讀福勒文章,這很棒。我想我的困惑源於假設如果一個圖層實現另一個圖層的接口,如果我沒有從實現圖層到接口所在圖層的引用,如何構建解決方案? – stephen776
在單獨的組件中提取接口,該組件將被所有圖層引用並使用DI。 –
上面增加了一個例子 – stephen776