MVC 中控制器的可重用性

发布于 2024-10-05 03:08:34 字数 233 浏览 0 评论 0原文

在 MVC 模式中,与其他两个方面相比,控制器的可重用性最低。 现在假设我有一个应用程序(例如订购披萨),它既可以作为网络应用程序也可以作为移动应用程序(例如 iPhone)使用。所以在这种情况下,我认为模型(或数据)可以被重用。该视图可能无法重用。

但是对于控制器来说,是否可以重用任何东西呢?假设我已经有一个可用的 Web 应用程序,我是否也可以为移动应用程序重用控制器逻辑?另外,MVC 中的“业务逻辑”是什么以及到底位于何处?

In the MVC pattern, the controller is the least reusable, compared to the other two aspects.
Now let's say I have an app (say for Ordering Pizza), which is available both as a web app and a mobile app (say iPhone). So in that case, I think the model (or data) can be reused. The view might not be reusable.

But regarding the controller, is it possible to reuse anything? Let's say if I already have a working web app, can I reuse controller logic for the mobile app as well? Also, what is and where exactly does "business logic" reside in MVC?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

王权女流氓 2024-10-12 03:08:34

控制器调用服务层。服务层使用模型来完成业务逻辑。控制器从不包含业务逻辑。它应该只将工作委托给服务层。我认为服务层是领域模型暴露的部分,可以说它是MVC中的“模型”。

也就是说,我认为 MVC 框架并不真正关心控制器是否可重用。重要的部分是模型,它不应该改变,因为服务层代码被重用。此外,如果我们正确编写代码,控制器将是一个非常薄的层,并且不应该担心可重用性。

您可以在移动应用程序中重用 Web 应用程序中的控制器逻辑吗?我认为不是,但你可以使用服务层。我怀疑视图是否可以直接从 Web 到移动应用程序使用,因为需求如此不同。

如果您对应用程序设计和学习如何组织业务逻辑感兴趣,我建议您查看领域驱动设计。

The controller calls a service layer. The service layer uses the model to do business logic. Controller never contains business logic. It should only delegate work to the service layer. I consider the service layer as the part that the domain model exposes, you could say it is the "Model" in MVC.

That said, I don't think the MVC frameworks really care if the controller is reusable or not. The important part is the model, which should not change because the service layer code is reused. Besides, if we write our code correctly, the controller will be a very thin layer and reusability should not be a concern.

Can you reuse the controller logic from the web app for a mobile application? I think not, but you could use the service layer. I am sceptical if even the view can be used directly from web to mobile apps, the needs are so different.

I suggest you look at Domain driven design if you are interested in application design and learning how to organize business logic.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文