领域建模中的有界上下文与上下文映射
1. 旅行安排与解耦方案
在旅行安排中,涉及同一航空公司的联程航班、其他航空公司的航班、租车和酒店预订等诸多信息。出于隐私考虑,乘客可能不愿向航空公司透露所有这些信息,而航空公司也不想承担存储这些信息以及处理频繁变更的旅行计划更新的责任。即便航空公司拥有最新的行程安排,也不想负责与其他旅行服务提供商更改预订。
因此,航空公司仅发出旅行变更通知,让不同的人员、应用程序和组织制定自己的解决方案,是最佳的方法。这样可以避免将各种系统紧密耦合在一起。
2. 有界上下文的概念
2.1 为什么需要有界上下文
单一的领域模型往往过于庞大,难以管理。人类短期记忆存在限制,当多个团队共享一个通用模型和代码库时,团队成员在进行更改时可能会产生冲突,导致难以测试代表不同观点的组件。
此外,将一个大的领域划分为子领域并定义逻辑边界是一项困难且繁琐的任务。有些概念可能属于多个子领域,或者跨越多个领域,而且大的领域会随着业务变化和认知的深入而不断演变。
2.2 有界上下文的定义
有界上下文(Bounded Context,BC)是指在一个领域内,特定概念(领域事件、聚合和行为)作为一个整体,针对特定目的发挥作用的边界。它界定了子领域的适用范围,是一个特定子领域内的术语和规则适用的区域,而其他子领域的术语在此不适用。
有界上下文的范围可以是一个子领域的整个模型,也可以是两个或多个子领域的模型(在处理遗留系统或更复杂的子领域时经常出现这种情况)。它是一个领域的逻辑边界,代表了领域内一组功能特性(用户故事或用例)的边界。
超级会员免费看
订阅专栏 解锁全文
528

被折叠的 条评论
为什么被折叠?



