上一章对领域层的相关概念做了阐述
应用服务
应用层作为展现层与领域层的桥梁,是用来表达用例和用户故事的主要手段。
应用层通过应用服务接口来暴露系统的全部功能。在应用服务的实现中,它负责编排和转发,它将要实现的功能委托给一个或多个领域对象来实现,它本身只负责处理业务用例的执行顺序以及结果的拼装。通过这样一种方式,它隐藏了领域层的复杂性及其内部实现机制。
限界上下文
用于划分领域模型和业务逻辑的边界。
限界就是领域的边界,而上下文则是语义环境。
限界上下文之间的映射关系
- 合作关系(Partnership):两个上下文紧密合作的关系,一荣俱荣,一损俱损。 ’
- 共享内核(Shared Kernel):两个上下文依赖部分共享的模型。
- 客户方-供应方开发(Customer-SupplierDevelopment):上下文之间有组织的上下游依赖。
- 遵奉者(Conformist):下游上下文只能盲目依赖上游上下文。
- 防腐层(Anticorruption Layer):一个上下文通过一些适配和转换与另一个上下文交互。
- 开放主机服务(Open HostService):定义一种协议来让其他上下文来对本上下文进行访问。
- 发布语言(PublishedLanguage):通常与OHS一起使用,用于定义开放主机的协议。
- 大泥球(Big Ball of Mud):混杂在一起的上下文关系,边界不清晰。
- 另谋他路(SeparateWay):两个完全没有任何联系的上下文。
不同限界上下文有些术语的概念是不一致的
在浏览产品目录的时候,“顾客” 被放在先前购买情况、忠诚度、可买产品、折扣和物流方式这样的上下文中。
下单时,“顾客”的上下文包含名字、产品寄送地址、订单总价和一些付款术语。
核心域、通用域、支撑域
通过领域划分,区分不同子域在公司内的不同功能属性和重要性,从而公司可对不同子域采取不同的资源投入和建设策略,其关注度也会不一样。
核心域
那些包含企业核心业务和竞争力的子域可以划为核心域。
通用域
无太多个性化需求,同时会被多个子域使用的通用功能子域。如认证、权限等,无企业特点限制,无需太多定制化。
支撑域
除核心域和通用域之外的子域可以算是支撑域
基于最简单的订单模型,进行一个划分。