# ddd_design **Repository Path**: liset/ddd_design ## Basic Information - **Project Name**: ddd_design - **Description**: DDD,领域驱动设计 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ddd_design #### 介绍 DDD,领域驱动设计 #### 软件架构 1、代码结构 com.ddd.ecommerce ├── EcommerceApplication.java // 应用入口 ├── common/ // 公共组件(跨领域复用) │ ├── domain/ │ │ ├── event/ // 通用领域事件 │ │ │ ├── DomainEvent.java // 领域事件顶层接口 │ │ │ └── DomainEventPublisher.java // 事件发布器接口 │ │ ├── model/ // 通用值对象 │ │ │ ├── Id.java // 通用ID值对象 │ │ │ └── Money.java // 金额值对象 │ │ └── exception/ // 通用异常 │ │ ├── BusinessException.java // 业务异常 │ │ └── NotFoundException.java // 未找到异常 │ └── infrastructure/ │ ├── event/ │ │ └── LocalEventPublisher.java // 本地事件发布器实现 │ └── util/ │ └── IdGenerator.java // ID生成工具 ├── order/ // 订单域(核心领域) │ ├── domain/ // 订单域-领域层 │ │ ├── model/ │ │ │ ├── Order.java // 订单聚合根 │ │ │ ├── OrderItem.java // 订单项实体 │ │ │ ├── OrderId.java // 订单ID值对象 │ │ │ ├── OrderStatus.java // 订单状态枚举 │ │ │ └── PaymentInfo.java // 支付信息值对象 │ │ ├── service/ │ │ │ └── OrderPricingService.java // 订单定价领域服务(跨聚合) │ │ ├── event/ │ │ │ └── OrderPaidEvent.java // 订单支付成功领域事件 │ │ └── repository/ │ │ └── OrderRepository.java // 订单仓储接口 │ ├── application/ // 订单域-应用层 │ │ ├── command/ │ │ │ ├── CreateOrderCommand.java // 创建订单Command │ │ │ └── PayOrderCommand.java // 支付订单Command │ │ ├── query/ │ │ │ └── GetOrderByIdQuery.java // 查询订单Query │ │ ├── service/ │ │ │ └── OrderAppService.java // 订单应用服务(流程协调) │ │ ├── dto/ │ │ │ ├── OrderDTO.java // 订单DTO │ │ │ └── OrderItemDTO.java // 订单项DTO │ │ ├── converter/ │ │ │ └── OrderDTOConverter.java // 订单DTO转换器 │ │ └── client/ │ │ ├── ProductClient.java // 商品域调用抽象接口 │ │ └── UserClient.java // 用户域调用抽象接口 │ ├── interfaces/ // 订单域-接口层 │ │ ├── controller/ │ │ │ └── OrderController.java // 订单Controller(HTTP入口) │ │ └── dto/ │ │ ├── CreateOrderRequestDTO.java // 创建订单请求DTO │ │ ├── PayOrderRequestDTO.java // 支付订单请求DTO │ │ └── OrderResponseDTO.java // 订单响应DTO │ └── infrastructure/ // 订单域-基础设施层 │ ├── repository/ │ │ ├── OrderRepositoryImpl.java // 订单仓储实现(MyBatis) │ │ ├── mapper/ │ │ │ ├── OrderMapper.java // 订单Mapper接口 │ │ │ └── OrderItemMapper.java // 订单项Mapper接口 │ │ └── po/ │ │ ├── OrderPO.java // 订单数据库实体(PO) │ │ └── OrderItemPO.java // 订单项数据库实体(PO) │ ├── client/ // 防腐层实现 │ │ ├── ProductClientImpl.java // 商品域调用防腐层 │ │ └── UserClientImpl.java // 用户域调用防腐层 │ └── payment/ │ ├── PaymentClient.java // 支付服务抽象接口 │ └── WeChatPayClientImpl.java // 微信支付防腐层实现 ├── product/ // 商品域(支撑领域) │ ├── domain/ │ │ ├── model/ │ │ │ ├── Product.java // 商品聚合根 │ │ │ ├── ProductId.java // 商品ID值对象 │ │ │ ├── ProductStatus.java // 商品状态枚举 │ │ │ └── Stock.java // 库存值对象 │ │ └── repository/ │ │ └── ProductRepository.java // 商品仓储接口 │ ├── application/ │ │ ├── command/ │ │ │ └── DeductStockCommand.java // 扣减库存Command │ │ ├── service/ │ │ │ └── ProductAppService.java // 商品应用服务 │ │ └── dto/ │ │ └── ProductDTO.java // 商品DTO │ ├── interfaces/ │ │ └── dto/ │ │ └── DeductStockDTO.java // 扣减库存DTO │ └── infrastructure/ │ ├── repository/ │ │ ├── ProductRepositoryImpl.java // 商品仓储实现 │ │ ├── mapper/ │ │ │ └── ProductMapper.java // 商品Mapper │ │ └── po/ │ │ └── ProductPO.java // 商品PO │ └── config/ │ └── ProductMyBatisConfig.java // 商品域MyBatis配置 └── user/ // 用户域(支撑领域) ├── domain/ │ ├── model/ │ │ ├── User.java // 用户聚合根 │ │ ├── UserId.java // 用户ID值对象 │ │ ├── MemberLevel.java // 会员等级枚举 │ │ └── Point.java // 积分值对象 │ └── repository/ │ └── UserRepository.java // 用户仓储接口 ├── application/ │ ├── query/ │ │ └── GetUserByIdQuery.java // 查询用户Query │ ├── service/ │ │ └── UserAppService.java // 用户应用服务 │ └── dto/ │ └── UserDTO.java // 用户DTO └── infrastructure/ ├── repository/ │ ├── UserRepositoryImpl.java // 用户仓储实现 │ ├── mapper/ │ │ └── UserMapper.java // 用户Mapper │ └── po/ │ └── UserPO.java // 用户PO └── config/ └── UserMyBatisConfig.java // 用户域MyBatis配置 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)