.net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(2)

DDD领域驱动模型设计

什么是DDD

软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开发。而在业务知识梳理的过程中,我们必然会形成某个领域知识,根据领域知识来一步步驱动软件设计,就是领域驱动设计的基本概念。

听起来这和传统意义的软件开发没啥区别,只是换了点新鲜的名词而已,其实不然。

该架构分成了Interfaces、Applications和Domain三层以及包含各类基础设施的Infrastructure。下图简略描述了它们之间的关系:

图1:领域驱动设计风格的架构草图(来自于DDDSample官网) 

下图是详细架构:

图2:领域驱动设计参考架构 

 

  • Interface

负责向用户展现信息,并且会解析用户行为,即常说的展现层。

  • Application 

应用层没有任何的业务逻辑代码,它很简单,它主要为程序提供任务处理。

  • Domain

这一层包含有关领域的信息,是业务的核心,领域模型的状态都直接或间接(持久化至数据库)存储在这一层。 

  • Infrastructure

为其他层提供底层依赖操作。

层结构的划分是很有必要的,只有清晰的结构,那么最终的领域设计才宜用,比如用户要预定航班,向Application的service发起请求,而后Domain从Infrastructure获取领域对象,校验通过后会更新用户状态,最后再次通过Infratructure持久化到数据库中。

那么根据这些我们就可以设计出自己得项目。当然需要灵活运用。

在此之前 我们先添加一些基础类库,然后分开层次。

(先睡觉了 明天继续)

猜你喜欢

转载自www.cnblogs.com/peigen/p/9572176.html