2 DDD理论学习2 领域】的更多相关文章

一个领域本质上可以理解为就是一个问题域,只要是同一个领域,那问题域就相同. 所以,只要我们确定了系统所属的领域,那这个系统的核心业务,即要解决的关键问题.问题的范围边界就基本确定了. 领域首先要拆分成子域,再逐步分类,可分为 核心子域,领域的核心目的是什么,那么这个核心目的所对应的模块就是核心子域 通用子域,服务其他子域的,比如日志 支撑子域,为核心子域起补充支撑作用的子域…
DDD理论学习系列目录 1. 引言 领域一词,主要有以下两个意思: 一国主权所达之地. 学术思想或社会活动的范围. 不管是指国家的主权范围也好还是学术活动范围,都是在讲一个范围,一个界限. 比如我们常说的,学术领域.思想领域.技术领域.语言领域.物理领域.医学领域.游戏领域.JAVA领域..NET领域等等,它们中不管是泛指还是特指某个领域,都是限定在某个范围之内的. 由此可见领域一词重在范围的界限. 下面我们就回归正传,DDD,Domain Drive Design,全称,领域驱动设计.那这个领…
DDD理论学习系列--案例及目录 1. 引言 单从字面理解,不管是领域服务还是应用服务,都是服务.而什么是服务?从SOA到微服务,它们所描述的服务都是一个宽泛的概念,我们可以理解为服务是行为的抽象.从前缀来看,根据DDD的经典分层架构,它们又隶属于不同的层,应用服务属于应用层,领域服务属于领域层. 应用层(Application):负责展现层与领域层之间的协调,协调业务对象来执行特定的应用程序任务.它不包含业务逻辑. 领域层(Domain):负责表达业务概念,业务状态信息以及业务规则,是业务软件…
DDD理论学习系列--案例及目录 1. 引言 A domain event is a full-fledged part of the domain model, a representation of something that happened in the domain. Ignore irrelevant domain activity while making explicit the events that the domain experts want to track or b…
DDD理论学习系列目录 1.引言 我们还是先来拆词理解,领域模型可以拆为"领域"和"模型"二词. 领域:按照我们之前的文章的理解,DDD中的领域是指软件系统要解决的问题,如我们的办公设备公众号在线商城就是为了解决电商问题,对应的就是电商领域. 模型:百度百科解释为对于某个实际问题或客观事物.规律进行抽象后的一种形式化表达方式.如户型图就是实际房屋结构的模型. 把两个词结合起来,我们给领域模型下个定义:领域模型是对我们软件系统中要解决问题的抽象表达. 这个理解还是很生…
DDD理论学习系列--案例及目录 1.引言 上一节讲解了领域模型,领域模型主要是将业务中涉及到的概念以面向对象的思想进行抽象,抽象出实体对象,确定实体所对应的方法和属性,以及实体之间的关系.然后将这些实体和实体之间的关系以某种形式(比如UML.图形.代码.文字描述等)展现出来.而领域模型是领域建模的结果,那如何建模呢?我们可以借助于UML. 我们知道UML(统一建模语言)是一种用于绘制软件概念图的图形符号.在和他人交流以及帮助解决设计问题方法,图示是最有效的.在DDD中我们习惯用UML进行领域建…
DDD理论学习系列--案例及目录 1.引言 实体对应的英语单词为Entity.提到实体,你可能立马就想到了代码中定义的实体类.在使用一些ORM框架时,比如Entity Framework,实体作为直接反映数据库表结构的对象,就更尤为重要.特别是当我们使用EF Code First时,我们首先要做的就是实体类的设计.在DDD中,实体作为领域建模的工具之一,也是十分重要的概念. 但DDD中的实体和我们以往开发中定义的实体是同一个概念吗? 不完全是.在以往未实施DDD的项目中,我们习惯于将关注点放在数…
DDD理论学习系列--案例及目录 1.引言 提到值对象,我们可能立马就想到值类型和引用类型.而在C#中,值类型的代表是strut和enum,引用类型的代表是class.interface.delegate等.值类型和引用类型的区别,大家肯定都知道,值类型分配在栈上,引用类型分配在堆上. 那是不是值类型对应的就是值对象,引用类型对应的就是实体吗?很抱歉,不是的. 值对象我们要分开来看,其包含两个词:值和对象.值是什么?比如,数字(1.2.3.14),字符串("hello world".&…
DDD理论学习系列--案例及目录 1.引言 聚合,最初是UML类图中的概念,表示一种强的关联关系,是一种整体与部分的关系,且部分能够离开整体而独立存在,如车和轮胎. 在DDD中,聚合也可以用来表示整体与部分的关系,但不再强调部分与整体的独立性.聚合是将相关联的领域对象进行显示分组,来表达整体的概念(也可以是单一的领域对象).比如将表示订单与订单项的领域对象进行组合,来表达领域中订单这个整体概念. 我们知道,领域模型是由一系列反映问题域概念的领域对象(实体和值对像)组成,聚合正是应用在领域对象之上…
DDD理论学习系列--案例及目录 1.引言 在针对大型的复杂领域进行建模时,聚合.实体和值对象之间的依赖关系可能会变得十分复杂.在某个对象中为了确保其依赖对象的有效实例被创建,需要深入了解对象实例化逻辑,我们可能需要加载其他相关对象,且可能为了保持其他对象的领域不变性增加了额外的业务逻辑,这样即打破了领域的单一责任原则(SRP),又增加了领域的复杂性. 那如何去创建复杂的领域对象呢?因为复杂的领域对象的生命周期可能需要协调才能进行创建. 这个时候,我们就可以引入创建类模式--工厂模式来帮忙,将对…