n层体系结构中可以为应用程序提供哪些额外的层?

时间:2018-08-10 09:38:01

标签: c# architecture multi-layer n-layer

我正在研究软件架构原理。
我知道什么是三层体系结构(包含Presentation-Business -Data Access)。
但是任何人都有任何想法或额外的操作层,例如有人通过额外的层(例如“服务”层,“基础结构”层或其他层等)进行操作。
有什么额外的方法可以做到吗?
我对此很困惑。
请帮助我...

2 个答案:

答案 0 :(得分:1)

C#与其他(命令式)编程语言没有区别。您的确切体系结构通常取决于所使用的框架。如果使用的是C#,则可能是 一种ASP.NET MVC。 This is a good overview

通常,在模型和控制器之间引入服务层以封装一些业务逻辑和事务流。此层是否“正确”是一个颇有争议的问题,通常取决于您是否订阅DDD阵营。实际上,如果您有很多复杂的业务逻辑,则将逻辑外部化到服务层中会提高可测试性,但代价是会降低模型层的实际建模能力。出于实用的测试目的,服务层通常最终成为大多数业务逻辑的来源。

存储库或数据访问层与模型层分开,如果您的域持久性达到一定程度的复杂性,则非常有用。我通常最终会默认创建它们,因为它还有助于测试使模型与持久性脱钩(并允许轻松注入模拟)。

答案 1 :(得分:1)

常见的分层体系结构组成:

  • 核心层
  • 基础结构
  • 演示文稿

进一步细分,这3层可以有自己的颗粒层。

核心层

  • 域模型
  • 枚举

基础结构

  • 存储库
  • 数据传输对象模型
  • 服务
  • 工作单位

演示文稿

  • MVC项目
  • Web API

我想回答您一个问题,我可以在基础架构和表示层之间插入一个层,并具有一个 Testing 层。请记住,只有在您的代码中遵循SOC和SOLID原则的情况下,通过使用文件结构对应用程序体系结构进行分层才真正有益。