课程名称:DDD(领域驱动设计)思想解读及优秀实践
课程章节: 战略设计
课程讲师: 尤达_技术咖啡
限界上下文如何协作,上下文映射和防腐层?
1,什么是限界上下文映射,从两个角度
上下文映射,就是限界上下文之间的关系(有依赖关系的,怎么给被依赖的提供服务)
同时映射关系的强弱,决定了依赖关系,有分歧的模块之间,谁说了算。
了解上下文之间的依赖关系和强弱关系,决定了上下文之间如何设置防腐层(模型转换的代理层)的问题
2,系统之间的关系:(调用关系和映射关系(领域包含相同关键属性))
1,模块之间的依赖,表示的调用关系
2,领域之间包含了相同的关键概念,表示的是映射关系(正是因为它们之间有相同的关键属性,所以才会发生关联):被依赖的就是被调用方。
3,调用方和被调用方之间,对象的传递有一下关系?
1,separate ways : 就是独立方法,调用方和被调用方的对象都是独立的
2,开放主机服务:第三方提供的方法,无法订制,都是通用的方法
2,开放主机服务:第三方提供的方法,无法订制,都是通用的方法
3,顺从者:开放主机服务中,因为下游调用方只能根据上游提供的方法进行使用,不能订制,所以下游也称为顺从者,或者叫跟随者。
顺从者没有模型的转换,直接用的上游对象,这就导致其他系统对象的侵入,因为不是你需要什么它给你什么,而是什么都给你,你自己选择有用的属性。如果上游都是这种系统,下游就会变的混乱,形成大泥球模型
4,大泥球(要避免发生):大泥球形成的原因就是上游给的对象属性,很多都是不自己需要的,但上游又不会给下游提供订制服务。所以下游就需要进行模型转换,这就是防腐层
5,防腐层(调用第三方服务和旧系统大泥球升级):下游把上游的对象,转换成自己需要的。而不是直接用上游提供的。
1,在调用多个开放服务的时候,就需要使用防腐层,来避免我们系统变成大泥球
2,在旧系统进行升级的时候,不要直接使用原有系统的大泥球,而应该设置一个防腐层。