2010-11-29 76 views
3

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

但是关于控制器,是否有可能重用任何东西?比方说,如果我已经有一个可用的Web应用程序,我是否也可以重复使用移动应用程序的控制器逻辑?另外,MVC中“业务逻辑”究竟在哪里以及在哪里?

回答

6

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

这就是说,我不认为MVC框架真的在乎控制器是否可重用。重要的部分是模型,它不应该因为服务层代码被重用而改变。此外,如果我们正确地编写代码,控制器将是一个非常薄的层次,重用性不应该成为问题。

您可以重复使用移动应用程序的Web应用程序中的控制器逻辑吗?我认为不是,但你可以使用服务层。如果即使视图可以直接从网络应用到移动应用程序,我也会持怀疑态度,需求如此不同。

如果您对应用程序设计感兴趣并学习如何组织业务逻辑,那么我建议您看看Domain驱动的设计。