电脑知识
少儿编程工作室怎么注册(如何开少儿编程机构)
2023-04-12 08:30

实际项目中的整洁架构(Clean Architecture)各层的作用,你都掌握了吗?

ApplicationCore层:

应用程序核心层是我们的业务逻辑和领域模型,而且这些业务逻辑应该包含在我们的领域模型当中。

1.领域模型(Entities[数据和行为]、Aggregates、Value Objects):

一组相关的类表示我们业务领域概念模型。

Aggregates:聚合根对象和Repository一对一。

实体之间总是互相引用的,聚合根的作用是把相关逻辑的实体组合当作一个整体对待。

聚合是一致性(事务性)的边界,对领域模型进行分组和隔离。聚合是关联的对象(实体)群,放在一个聚合容器中。

2.相关接口 / 抽象 (Interfaces):

IRepository,IUnitOfWork,ILogger,INotififyService,Query Specification,EntityBase ...

仓储是协调领域模型和数据映射层的组件,实现领域模型数据持久化。

3.数据传输对象(DTOs)

UI/API 暴露的数据传输对象。

4.Exceptions

自定义业务异常对象

5.领域服务(Domain Services):

业务逻辑实现不依赖Infrastructure项目并且不包含具体实现细节代码(如:数据库访问代码)。

领域服务类实现我们的领域逻辑,这些逻辑不属于特定聚合中,很可能跨多个实体对象。

当一块业务逻辑无法融入任何现有聚合,而聚合又无法通过重新设计适应操作时,就需要考虑使用领域服务。

6.查询规范(Query Specification)

定义项目范围内可重用和可测试不同类型的查询。每个规范类型都定义了使用仓储运行查询所有的逻辑。

领域规则:业务处理过程中包含一些复杂的查询规则并且具有通用性,通过LINQ和Expression树来定义领域规则,实现动态查询。

Infrastructure层:

该层包含我们项目如何处理基础设施的代码和具体的实现细节代码。

在ApplicationCore层中定义的接口,在Infrastructure层中去做具体的实现。

还有其他的代码:比如数据持久化,文件访问,通知消息服务,记录日志,第三方接口集成等。这一层的主要作用是将与业务和领域模型无关的细节代码分离出来。

web/api层:

前后端分离,后端使用asp.net core提供数据服务接口

通常Web和ApplicationCore中的代码都是依赖的服务都是抽象的(Interface/Abstraction)

在web项目的StartUp类的ConfigureServices方法中配置IOC容器,

注册服务于具体实现类型的关系。

#程序员# #IT# #编程#

#学习# #知识# #计算机#

微信平台暂停新用户注册,据称进行技术升级。按说在中国该有微信好的都应该注册过了,如果每天还有大量新用户涌入,黑产可能占了很大比例,很多黑产都是重点打击对象。

希望这次整顿对于打击网络犯罪能起到一定作用。

发表评论
0评