我試圖總是以模塊化的方式設計我的應用程序。我希望能夠在任何給定的交換模塊。依賴注入模塊化依賴註冊
使用依賴注入模式允許我這樣做。但是有些東西一直困擾我很多。
在大多數代碼我來跨越存在其中接口被鏈接到所期望的接口的單個地方。例如在asp.net vnext中,它看起來像這樣:
public void ConfigureServices(IServiceCollection services)
{
// business-layer
services.AddTransient<IArticleRepository, ArticleRepository>();
// data-layer
services.AddTransient<IDataConnection, DataConnection>();
}
但我不喜歡只有一個地方做註冊。我寧願每個模塊註冊自己的接口/實現:
在我的業務層(模塊)
public void ConfigureServices(IServiceCollection services)
{
// business-layer
services.AddTransient<IArticleRepository, ArticleRepository>();
}
在我的數據層(模塊)
public void ConfigureServices(IServiceCollection services)
{
// data-layer
services.AddTransient<IDataConnection, DataConnection>();
}
有任何圖案,或最好的做法來做這種事情?我可以創建一些接口並加載該接口的所有實現,但我不確定這是否是實現此目的的最佳方式。