Appearance
Day 15 - 限界上下文集成模式
📖 今日目标
- 理解限界上下文之间的集成方式
- 掌握不同集成模式的适用场景
- 学习防腐层的实现
核心概念
上下文映射模式
限界上下文之间需要相互协作,主要集成模式:
- 共享内核(Shared Kernel)
- 客户-供应商(Customer-Supplier)
- 防腐层(Anti-Corruption Layer)
- 开放主机服务(Open Host Service)
- 独立进程(Separate Ways)
关键要点
1. 防腐层(ACL)
java
// 外部系统的适配器
public class CustomerAdapter implements CustomerGateway {
private final ExternalCustomerApi externalApi;
@Override
public Customer findCustomer(CustomerId id) {
// 转换为内部模型
ExternalCustomer external = externalApi.getCustomer(id);
return new Customer(
CustomerId.of(external.getId()),
external.getName(),
// ... 转换逻辑
);
}
}2. 防腐层的作用
- 隔离外部模型与内部模型
- 防止外部变化影响内部
- 允许内部使用领域语言
3. 集成方式选择
| 场景 | 推荐模式 |
|---|---|
| 遗留系统对接 | 防腐层 |
| 上下游关系 | 客户-供应商 |
| 紧密协作团队 | 共享内核 |
| 开放API | 开放主机服务 |
面试考点
问题:什么时候需要防腐层?
答案:
需要防腐层的场景:
- 对接遗留系统:遗留系统的模型不符合DDD,需要转换
- 对接外部服务:外部服务的模型与内部模型不一致
- 保护内部模型:防止外部变化影响内部设计
防腐层让内部限界上下文保持纯净,不受外部干扰。
实践思考
🎯 思考题:
在电商系统中对接第三方支付系统,如何设计防腐层?
📅 学习进度
| Day | 主题 | 状态 |
|---|---|---|
| 01-14 | 战略设计 + 战术基础 | ✅ |
| 15 | 限界上下文集成模式 | ✅ |
| 16 | DDD与分层架构 | ⬜ |
| ... | ... | ... |
| 30 | 复习与总结 | ⬜ |
