图书管理系统 (book-management-system)
│
├─ 用户界面层 (ui)
│ ├─ controller
│ │ ├─ UserController.java
│ │ ├─ BookController.java
│ │ └─ LoanController.java
│ └─ dto
│ ├─ UserDTO.java
│ ├─ BookDTO.java
│ └─ LoanDTO.java
│
├─ 应用层 (application)
│ ├─ service
│ │ ├─ UserService.java
│ │ ├─ BookService.java
│ │ └─ LoanService.java
│ └─ dto
│ ├─ UserDTO.java
│ ├─ BookDTO.java
│ └─ LoanDTO.java
│
├─ 领域层 (domain)
│ ├─ model
│ │ ├─ user
│ │ │ ├─ User.java
│ │ │ └─ UserEmail.java (Value Object)
│ │ ├─ book
│ │ │ ├─ Book.java
│ │ │ ├─ ISBN.java (Value Object)
│ │ │ └─ BookStatus.java (Enumeration)
│ │ └─ loan
│ │ ├─ Loan.java
│ │ ├─ LoanId.java (Value Object)
│ │ └─ LoanStatus.java (Enumeration)
│ ├─ service
│ │ ├─ BookDomainService.java
│ │ └─ LoanDomainService.java
│ ├─ event
│ │ └─ BookLoanedEvent.java
│ └─ repository
│ ├─ UserRepository.java
│ ├─ BookRepository.java
│ └─ LoanRepository.java
│
└─ 基础设施层 (infrastructure)
├─ config
│ └─ DatabaseConfig.java
├─ repository
│ ├─ db
│ │ ├─ DbUserRepository.java
│ │ ├─ DbBookRepository.java
│ │ └─ DbLoanRepository.java
│ └─ cache
│ └─ CacheUserRepository.java
└─ utils
└─ NotificationService.java
上述结构展示了一个图书管理系统的 DDD 架构,包括用户、图书和借阅三个主要的领域概念。在实际的项目中,每一个类、服务和仓库内部可能还有许多的方法和逻辑,但为了简洁,这里仅列出了结构和主要的类名。
