DDD:领域驱动设计
DDD主要解决因系统规模过大而引起的软件复杂性的问题
DDD不是架构,而是一种架构设计方法论
核心名词:
领域:指的是一个组织的业务范围以及在其中所进行活动
子域:领域的范围太大,通常会划分成多个子域,用来表示业务系统的某个方面
限界上下文:用来封装通用语言和领域提供上下文环境
上下文映射图:限界上下文之间的映射关系
实体:实体是具有唯一标识符的对象,可以通过这个唯一标识来追踪对象的状态变更
值对象:值对象是封装了一系列相关属性,但没有唯一标识符的对象
领域服务:领域服务是用来实现特定于某个领域的任务,通常是无状态的
领域事件:领域事件指领域中发生的事件
聚合和聚合根:聚合是由业务和逻辑紧密关联的实体和值对象组合而成的逻辑封装体
资源库:资源库(Repository)用来负责实体或聚合的持久化
工厂:DDD中的工厂,用来创建复杂对象和聚合,它本身并不会承担领域模型中的职责
应用服务:应用层通过应用服务接口来暴露系统的全部功能