DDD框架基础知识

时间:2022-12-11 19:03:51

DDD框架基础知识

参考:

https://www.cnblogs.com/zhili/p/OnlineStorewithDDD.html(领域驱动设计,分层架构)

https://www.cnblogs.com/zhili/p/SpecificationPattern.html(规约,后续研究)

一.什么是DDD?

DDD是Domain Driven  Design的缩写,是通过建立领域模型解决复杂领域问题。是一种编程思想,方便业务人员及开发人员与领域专家的交流。

二.什么是领域?

领域指的就是某一产品或某一系统,比如:论坛,电商,医疗,物流等,都各自属于一个领域,通过与领域专家交流,了解当前领域中的业务及可能存在的问题域并解决即可。

三.什么是设计?

在DDD中领域模型设计是核心,通过设计领域模型来解决复杂的领域问题。领域模型

四.什么是驱动?

四.DDD如何分层?

DDD可以看作是一个四层架构:基础设施层,领域层,应用层,用户界面层,相互协助解决领域问题。

用户界面层:可以有mvc,webform,webapi,控制台,winform等,提供界面展示及请求响应渲染。

应用层:不包含任何业务逻辑,是用户界面层与领域层的桥梁,WCF就在该层。

领域层(核心):包含领域对象(实体,值对象),领域事件,领域服务,规约,工厂,接口,仓储接口等,重点就是领域对象。

领域对象:

1.实体,值对象

2.聚合根(聚合根也是实体,但与实体不同的是,聚合根是由实体和值对象组成的系统边界对象),聚合

根据面向接口编程原则,我们在领域模型中应该定义一个实体接口和聚合根接口,而因为聚合根也是属于实体,所以聚合根接口继承于实体接口

实体可以认为对应于数据库的表,而值对象一般定义在实体类中。

基础设施层:

1.提供通用的框架(缓存,日志,事务处理等)

2.仓储实现(也可以单独一个层【仓储层】)

三.