Appearance
Day 19 - 上下文映射器实现
📖 今日目标
- 理解上下文映射的实现方式
- 掌握不同映射模式的代码实现
- 学习上下文间数据同步
核心概念
上下文映射实现
上下文映射定义了限界上下文之间的协作方式,需要通过代码实现这些映射关系。
关键要点
1. 集成模式实现
客户-供应商模式:
java
// 下游上下文调用上游服务
public class OrderContext {
private final WarehouseService warehouseService;
public void checkStock(List<Product> products) {
return warehouseService.checkAvailability(products);
}
}防腐层模式:
java
public class CustomerAdapter {
public Customer toInternal(ExternalCustomer external) {
// 转换逻辑
}
}2. 共享内核
共享内核需要严格管理:
- 共同维护的模型子集
- 双方协商修改
- 避免过度共享
3. 数据同步
跨上下文数据同步方式:
- 同步:通过API实时调用
- 异步:通过消息队列事件同步
面试考点
问题:如何处理上下文间的数据一致性?
答案:
- 同步调用:适合强一致性场景,但有延迟
- 事件驱动:适合最终一致性,性能更好
- Saga模式:跨多个上下文的分布式事务
选择依据业务需求,DDD通常推荐事件驱动实现最终一致性。
实践思考
🎯 思考题:
订单上下文需要查询商品上下文的价格,设计实现方案。
📅 学习进度
| Day | 主题 | 状态 |
|---|---|---|
| 01-18 | 战略设计 + 战术 + 架构 | ✅ |
| 19 | 上下文映射器实现 | ✅ |
| 20 | 领域模型持久化 | ⬜ |
| ... | ... | ... |
| 30 | 复习与总结 | ⬜ |
