如果我从控制器中取出逻辑,是不是需要业务逻辑层?
Posted
技术标签:
【中文标题】如果我从控制器中取出逻辑,是不是需要业务逻辑层?【英文标题】:Is a business logic layer necessary if I take logic out of the controllers?如果我从控制器中取出逻辑,是否需要业务逻辑层? 【发布时间】:2021-03-28 16:43:56 【问题描述】:我正在开发一个 API 项目,其中一些端点在控制器的操作方法中有很多业务逻辑。许多文献表明我将这个业务逻辑提取到一个完全不同的项目中,并让 API 项目引用它。我的问题是我真的需要一个单独的域/业务逻辑层吗?似乎我可以将业务逻辑提取到 API 层中自己的类中,并且可以完成同样的事情。感谢您的洞察力!
【问题讨论】:
【参考方案1】:为领域/业务层建立一个单独的项目有一些优势。
-
其他层也可以使用您创建的域/业务类,而无需了解/引用 API 层及其依赖项。
想象一下,您的 API 层使用 AbcCalculator(您已在 API 层中定义)。如果您想在数据访问层中使用 AbcCalculator,那么您必须引用您的 API 层。然后你不能从你的 API 层引用你的数据访问层,因为它是一个循环依赖。
当您为域/业务层编写测试时,您的测试项目将不需要引用 API 项目及其依赖项。
单独的项目意味着开发人员不会意外引用真正属于 API 层、域/业务层的对象。这会导致以后难以分离层,因为最终会产生循环依赖。
【讨论】:
感谢您的解释PeteGo!以上是关于如果我从控制器中取出逻辑,是不是需要业务逻辑层?的主要内容,如果未能解决你的问题,请参考以下文章