分析 NET逻辑层次结构
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或者邮箱删除。