ASP WebApi:服务层、业务层和数据访问层

Posted

技术标签:

【中文标题】ASP WebApi:服务层、业务层和数据访问层【英文标题】:ASP WebApi : Service layer, business layer and data access layer 【发布时间】:2020-11-28 11:36:51 【问题描述】:

如果我需要编写一个需要获取/创建/更新/删除产品的简单 webapi。这真的需要业务层吗?

我正在使用实体框架,据我了解这类似于存储库模式。

如果我的 webapi 应用程序非常简单,那么复杂的业务逻辑并不多,例如银行对账等

我真的需要一个业务逻辑层吗?我可以只有一个服务层来创建产品/删除产品等。

【问题讨论】:

【参考方案1】:

不,根本不需要业务层! (带有免责声明) 让我支持我的论点并解决您的担忧

软件工程最基本的设计原则之一是KISS。如果你觉得你要解决的业务问题很简单,那为什么要通过引入不必要的层来使代码变得复杂。

没有“业务层”不是犯罪。它也得到了社区的大力支持,这就是为什么在社区和行业喜爱的框架之一 Spring 中有一个名为 spring-data-rest 的模块完全支持您提出的设计(带有业务层的简单代码,顶部没有明确的 Web 层)

最后一个论点进化方法。随着系统和技术社区发布的日益复杂的系统和代码的复杂性应该发展(思想过程很好解释here)。不要试图在今天考虑未来(再次参考另一个基本设计原则YAGNI)。 (在此解释免责声明)所以从简单开始,如果将来您觉得需要拥有单独的业务逻辑层,因为您必须编写一些实际的业务解决代码,然后引入该层并发展它! p>

【讨论】:

以上是关于ASP WebApi:服务层、业务层和数据访问层的主要内容,如果未能解决你的问题,请参考以下文章

Web项目结构分层

使用 DTO 在服务层和 UI 层之间传输数据

N 层服务层验证显示表示层中的业务逻辑错误

数据访问层和业务对象

Java Spring Boot如何实现业务逻辑层和资源库层?

将业务层和数据层结合在一个 WCF 服务中的优缺点