手机版

分析 NET逻辑层次结构

时间:2021-09-27 来源:互联网 编辑:宝哥软件园 浏览:

1.基础知识准备:

1.层的原理:

(1)每一层由上层以接口的形式调用。(2)上层只能调用下层。(3)依赖可分为松散交互和严格交互。

2.业务逻辑分类:

(1)应用逻辑。(2)领域逻辑。

3.采用的层数:

(1)表示层(用户界面层):与领域无关。(2)服务层(应用层):应用逻辑。(3)业务逻辑层(领域层):领域逻辑。(4)共享层:提供通用代码。(5)实现层:提供接口实现。

4.协议:

(1)域层默认采用域模型;(2)数据访问层默认需要引用域模型。

二.分级体系结构

架构的三个基本层是:表示层、业务逻辑层和数据访问层。如果按照业务逻辑的分类将业务逻辑层分为服务层和领域层,那么这三层就扩展为四层:表示层、服务层、领域层和数据访问层。通常,访问层必须了解域模型,这将导致层与层之间的双向依赖。通常,我们有以下两种解决方案:

1.将域模型放置在共享层中:

评价:PetShop采用这种模型,但有很多缺点:业务逻辑层的名称不真实,领域模型实际上是一个数据模型,保持了层间依赖,引入了更多的依赖,有明显的数据驱动思想,没有以领域为核心。

2.在业务逻辑层定义数据访问接口:

评价:NopCommerce采用这种模式。尽管服务层是分离的,采用了资源池的命名方式,但NopCommerce并不是DDD层次架构,而是一个通用的三层架构,以领域模型和接口分离为原则。缺点:除了数据不动产,其他特定的技术依赖没有从业务逻辑层中分离出来。

Iii .DDD分层

DDD清楚地将业务逻辑层分为应用层(服务层)和域层。同时,数据访问等接口的具体技术实现统一到基础设施层。

1.最初的DDD分层:

评价:优点是将具体的技术实现从领域中分离出来,增加了基础设施层的复用价值。缺点是没有使用共享和实现的概念来细分基础设施层,导致在基础设施层实现仓储时的反向依赖。虽然它在单项目解决方案中没有影响(只有命名空间级别的形式依赖),但是在。NET多项目解决方案中,仓储实现只能通过接口分离分离成类似于数据访问层的方式。

2.改善DDD分层:

评价:基础设施层兼具共享层和实现层的特点。这样做的好处是最终在形式上以领域为核心,同时解决了在基础设施层实现入库时无法引用领域模型的尴尬。缺点是没有区分共享和实现的概念。

3.最新的DDD分层:

评估:优点是这真的是以域为中心,不再需要在服务层重新适应,因为基础设施层不能引用域层。利用依赖反转原理,彻底反转每一层对特定技术的依赖。缺点:依赖反转被过度使用,在单项目解决方案中没有问题,但是在中会导致命名空间形式的双向依赖。NET多项目解决方案。作为实现层,基础设施层基本上没有重用价值。更好的方法是改变用户界面层和基础设施层在图中的位置。

您可以考虑根据需要在上图中添加一个适当的共享层。

四.建筑趋势:

(1)以业务逻辑为核心,更加注重业务逻辑。(2)将业务逻辑层的具体依赖关系划分为一个层次进行统一管理。(3)更加注重减少解决方案内部的依赖,而不是解决方案之间的代码重用。(4)共享层和实现层的分离会越来越体现出来。比如洋葱建筑。

版权声明:分析 NET逻辑层次结构是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。