Model view controller MVC中控制器的可重用性

Model view controller MVC中控制器的可重用性,model-view-controller,Model View Controller,在MVC模式中,与其他两个方面相比,控制器的可重用性最低。 现在让我们假设我有一个应用程序(比如订购比萨饼),它可以作为web应用程序和移动应用程序(比如iPhone)使用。因此,在这种情况下,我认为模型(或数据)可以重用。该视图可能无法重用 但是关于控制器,有可能重用任何东西吗?比如说,如果我已经有了一个可以工作的web应用程序,那么我可以为移动应用程序重用控制器逻辑吗?另外,MVC中的“业务逻辑”是什么,具体驻留在哪里?控制器调用服务层。服务层使用模型执行业务逻辑。控制器从不包含业务逻辑。它

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


但是关于控制器,有可能重用任何东西吗?比如说,如果我已经有了一个可以工作的web应用程序,那么我可以为移动应用程序重用控制器逻辑吗?另外,MVC中的“业务逻辑”是什么,具体驻留在哪里?

控制器调用服务层。服务层使用模型执行业务逻辑。控制器从不包含业务逻辑。它应该只将工作委托给服务层。我认为服务层是域模型公开的一部分,可以说它是MVC中的“模型”。 也就是说,我认为MVC框架并不真正关心控制器是否可重用。重要的部分是模型,它不应该改变,因为服务层代码是重用的。此外,如果我们正确地编写代码,控制器将是一个非常薄的层,可重用性不应受到关注

您能否将web应用程序中的控制器逻辑重新用于移动应用程序?我认为不是,但是你可以使用服务层。我怀疑,即使是从网络到移动应用程序都可以直接使用该视图,需求也是如此不同

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