MVC中控制器的可重用性

hmt*_*hur 3 model-view-controller

在MVC模式中,与其他两个方面相比,控制器是最不可重用的.现在让我们说我有一个应用程序(比如Ordering Pizza),它可以作为网络应用程序和移动应用程序(比如iPhone)使用.所以在这种情况下,我认为模型(或数据)可以重复使用.该视图可能无法重复使用.

但关于控制器,可以重用任何东西吗?假设我已经有一个可用的网络应用程序,我是否可以重用移动应用程序的控制器逻辑?此外,"业务逻辑"在MVC中的确切位置和位置是什么?

Abh*_*nia 6

控制器调用服务层.服务层使用模型来执行业务逻辑.Controller永远不会包含业务逻辑.它应该只将工作委托给服务层.我认为服务层是域模型公开的部分,你可以说它是MVC中的"模型".

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

您是否可以从Web应用程序重用移动应用程序的控制器逻辑?我想不是,但你可以使用服务层.我怀疑即使视图可以直接从网络到移动应用程序使用,需求也是如此不同.

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