我必须在哪里包含我的应用程序的业务逻辑? [关闭]
Posted
技术标签:
【中文标题】我必须在哪里包含我的应用程序的业务逻辑? [关闭]【英文标题】:Where I must contain business logic of my application? [closed] 【发布时间】:2019-10-16 21:59:50 【问题描述】:看了很多关于正确架构应用的文章,我还是有一个疑问:应用的业务逻辑必须包含在哪里? 因为有人告诉,逻辑必须包含在模型(瘦控制器)中,另一个人说模型必须只包含数据库操作逻辑。
例如:
在我的项目(在线商店)中,我有一个产品过滤器,它在 CategoryController 中使用并由 Products 和 Parameters 表过滤。所以它不是控制器,也不是模型。我通过创建名为 Filters 的新目录来解决它(是的,有几个不同的过滤器),并在那里包含所有逻辑。 但我不知道这是正确的解决方案吗?我认为不是,但我不知道如何正确构建它。
所以这是我的问题:
-
我做对了吗?
我必须在哪里包含业务逻辑?
谢谢,祝你有美好的一天!
附言 对不起我的英语。
【问题讨论】:
与您的俄语版本的问题相同 - 主要基于意见。 你的项目是什么框架(网店) 抱歉,忘记了。 Laravel 【参考方案1】:这取决于偏好。只要你使用正确的标准,你应该没问题!
所以在 Laravel 中,我将 Models
严格用于数据库操作。我还创建了一个名为 Services
的文件夹和另一个名为 Hydrators
的文件夹
我在服务文件夹中的服务处理业务逻辑,例如从模型中获取数据和任何逻辑操作。我的 hydrator 获取数据并按照我希望将数据呈现给视图的方式对其进行排序。
我的服务和 hydrator 都使用 Single Responsibility Principle,因为这允许我在其他地方重用相同的代码以避免代码重复!
我的控制器只是后端的入口点,只做两件事;调用服务并将所需的服务拼接在一起并返回结果(结果可以是从 JSON 到带有数据的视图的任何内容)。
这只是我个人的做事方式。其他人可能有不同的方式。
【讨论】:
感谢您如此详细的回复。我会尝试使用你的技术。以上是关于我必须在哪里包含我的应用程序的业务逻辑? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章