共享内核
当两个边界上下文需要共享一些模型,这个适合时候,我们通常需要分离出这些共享的模型,放到共享内核(一个module),共享内核通常是 核心域 或 通用子领域 ,共享内核由负责这两个上下文的团队负责,测试也是由这两个团队编写
建立的共享内核的上下文可以共享模型
客户/供应商
一个系统服务于另一个系统,那么一个上下文服务于另一个上下文
墨守成规
新开发的系统需要应用现有系统的部分模型,但应用现有系统的开发团队不会根据新开发系统团队的需求来提供接口,这时候可以选择使用现有的模型进行开发,这相当于上下文B包含了上下文A,B可以使用A的模型,但A却不服务于B
防腐层
当我们需要另一个系统的模型转成我们的模型时(如:系统A有用户的数据,而我们需要A的数据构建我们的用户模型),但其数据并不完全符合我们的模型,我们应该使用防腐层。
防腐层是上下文的一部分,是一个module,实现在基础设施层,是一组service的集合,使用外观模式,返回我们系统期望的模型
防腐层是链接两个上下文的一种方式
各行其道
集成(将现有功能应用放到当前上下文中)的代价总是昂贵,如果一个与其他上下文不相关的上下文那会很容易开发