上下文映射
上下文组织和集成模式的定义
合作关系:
如果两个限界上下文的团队要么一起成功,要么一起失败,那么他们就需要建立起合作关系。两个团队应该在接口的演化上进行合作以同时满足两个系统的需求。应该为相互关联的的软件功能制订好计划表,这样可以确保这些功能在同一个发布中完成。
共享内核:
对模型和代码的共享将产生一种紧密的依赖性。我们需要为共享的的部分模型指定一个显示的边界,并保持共享内核的小型化。共享内核具有特殊的状态,在没有与另一个团队的协商的情况下,这种状态是不能改变的。
客户方-供应方开发:
当两个团队处于一种上游-下游关系时,上游团队的计划中应该顾及到下游团队的需求。
尊奉者:
在存在上游-下游的两个团队中,如果上游团队已经没有动力提供下游团队之所需,下游团队便孤立无援了,只能盲目使用上游团队的模型。
防腐层:
就是上下游之间的翻译层,放在下游上。对于下游客户来说,你需要根据自己的领域模型创建一个单独的层,该层作为上游系统的委派向你的系统提供功能。防腐层通过已有的接口与其他系统交互,而尽量使其他系统无需修改。在防腐层内部,它在你自己的木星和他方模型之间进行翻译转换。
开放主机服务:
定义一种协议,让你的子系统通过该协议来访问你的服务。
发布语言:
在两个限界上下文之间翻译模型需要一种共享的公用的语言。发布语言通常和开放主机系统一起用。
大泥球:
当我们检查已有系统时,经常发现系统中存在混杂在一起的模型,它们之间的边界是非常模糊的。此时你应该为整个系统绘制一个边界,然后将其归纳在大泥球之列。
从大佬那里偷个图:(ACL表示防腐层、OHS表示开放主机服务、PL表示发布语言、U代表上游、D代表下游)