【问题标题】:Is a business logic layer necessary if I take logic out of the controllers?如果我从控制器中取出逻辑,是否需要业务逻辑层?
【发布时间】:2021-03-28 16:43:56
【问题描述】:

我正在开发一个 API 项目,其中一些端点在控制器的操作方法中有很多业务逻辑。许多文献表明我将这个业务逻辑提取到一个完全不同的项目中,并让 API 项目引用它。我的问题是我真的需要一个单独的域/业务逻辑层吗?似乎我可以将业务逻辑提取到 API 层中自己的类中,并且可以完成同样的事情。感谢您的洞察力!

【问题讨论】:

    标签: design-patterns api-design web-development-server business-logic


    【解决方案1】:

    为领域/业务层建立一个单独的项目有一些优势。

    1. 其他层也可以使用您创建的域/业务类,而无需了解/引用 API 层及其依赖项。

    想象一下,您的 API 层使用 AbcCalculator(您已在 API 层中定义)。如果您想在数据访问层中使用 AbcCalculator,那么您必须引用您的 API 层。然后你不能从你的 API 层引用你的数据访问层,因为它是一个循环依赖。

    1. 当您为域/业务层编写测试时,您的测试项目将不需要引用 API 项目及其依赖项。

    2. 单独的项目意味着开发人员不会意外引用真正属于 API 层、域/业务层的对象。这会导致以后难以分离层,因为最终会产生循环依赖。

    【讨论】:

    猜你喜欢
    • 2017-08-08
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多