DDD四層架構
四層架構
- 展示層:一方面展示前端界面給用戶,其實就是View層;另一方面接受用戶的操作(如:點擊某個按鈕),然后調用應用層來處理事件。
- 應用層:作為展示層和領域層的協(xié)調者和隔離者, 下調業(yè)務對象來執(zhí)行具體的任務。
- 領域層:這一層包含業(yè)務對象和其周圍的規(guī)則,是整個應用的核心部分。
- 基礎設施層:提供一些通用的第三方庫給更高層使用。
以上是DDD的經(jīng)典四層架構,但ABP在此基礎上還加了基層,如下:
- 用戶層:就是前端層了,是實實在在展示著在用戶面前的前端界面,比如:VUE的很多框架等等。
- Presentation層:這一層主要包括API接口,ASP.NET [Core] MVC (Model-View-Controller)可以被認為是Presentation層,它也可以是一個物理層(提供HTTP api)或邏輯層(直接注入和使用應用程序服務),它還包括定位、導航、對象映射、緩存、配置管理、審計日志記錄等等。它還處理授權、會話、特點(多租戶應用程序)和異常處理。
- Application層:該層主要包括Application Services(應用服務),應用服務可以調用領域層或者領域對象(Domain Services, Entities)來完成用戶請求。同時該層使用DTO來獲取展示層數(shù)據(jù)和返回數(shù)據(jù)給展示層。它也可以處理授權、緩存、審計日志對象映射,會話等等。
- Domain層:這是領域驅動設計最核心曾。包括了 Entities, Value Objects, 和 Domain Services,Specifications, Domain Events,在該層還定義了倉儲接口(Repository )來讀取和持久化實體數(shù)據(jù)(entities )到數(shù)據(jù)庫。
- Infrastructure層:這一層為基礎設施層,看名字就知道是為了輔助其他層進行工作的。第一:在該層實現(xiàn)倉儲接口(repository )來和真實數(shù)據(jù)庫交互(如可通過Entity Framework Core實現(xiàn)),這是個集成各種第三方框架來支撐其他層運行的一層

image.png
加我微信:wc88114,一起交流