目前,我在IoC中使用Autofac
,並且在兩個組合根(一個用於前端,另一個用於後端)中,我註冊並解析跨越Service
,Business
和Data
層。N層架構中的Autofac模塊
截至目前我有一個像'AccountingModule'。現在我要添加幾個新的模塊到應用程序中,像InventoryModule
,...
我的問題是我應該在每個模塊類之間分層(解決方案1)還是分別爲每個模塊模塊(溶液2)
解決方案1:
Service Layer
(AccountingMoudle, InventoryModule, ...)
Business Layer
(AccountingMoudle, InventoryModule, ...)
Data Layer
(AccountingModule, InventoryModule, ...)
或
解決方案2:
AccountingModule
(
Service Layer,
Business Layer,
Data Layer
)
InventoryModule
(
Service Layer,
Business Layer,
Data Layer
)
編輯1
+-----------------------------+ +----------------------------+
+--+AccountingServiceComponent +-+InventoryServiceComponent
| Weak Dependency |
+--+AccountingBusinessComponent <------------------+ +-+InventoryBusinessComponent
| |
+--+AccountingDataComponent +-+InventoryDataComponent
+ +
+-+ GetDocumentByID(int id) +--+GetProductByID(int id)
| |
+-+ SaveDocument(Document d) +--+SaveProduct(Product p)
編輯2 架構:
每個終端應用程序應該只有一個組合根。在你的情況下,你似乎只有一個最終應用程序,所以你應該有一個組合根。 – Steven
相關:https://stackoverflow.com/questions/9501604/ioc-di-why-do-i-have-to-reference-all-layers-assemblies-in-entry-application – Steven