更多控制器,但操作更少或控制器更少,但更多操作

时间:2012-06-23 18:34:48

标签: c# asp.net-mvc controller asp.net-mvc-4

是什么让您决定创建新控制器而不是向现有控制器添加更多操作?你在哪里划线?为什么?

3 个答案:

答案 0 :(得分:5)

决定何时创建新控制器的主要因素是它们执行的逻辑/功能。您需要确保 separate concerns

public class ProfileController {  }

public class MainController {  }

public class AccountController {  }

public class ShoppingCartController {  }

以前的每个控制器都用于协调相应域服务/模型与其视图之间的通信。

答案 1 :(得分:5)

进入图片当然是行动的数量¹ - 至少在“哦,我在这个控制器中超过50个动作,让我们开始另一个”的意义上。

准则²应该是:控制器是对同一类型对象进行操作的逻辑组(相同类型的模型可能是更好的定义)。如果您的模型功能如此丰富,以至于可以对其执行30个单独的操作,请继续将它们放在同一个控制器中。

硬币的另一面:如果你有简单的模型并且你发现自己只用几个动作来编写控制器,那么这应该是对应用程序的可维护性感觉良好而不是担心的理由。


注意:

¹当然,具有许多操作的控制器是可能的代码滥用的红色标志,因此应该的数量 - 而不是某种硬规则。

²这真的是一个指导原则 - 这里的目标是建立一个可维护的系统,而不是遵循一些宗教经文。

答案 2 :(得分:2)

作为一般的经验法则,我尽可能简单地保持所有动作,如果它们变大或太多,我会看到我是否可以创造帮手功能。

如果需要,我每个数据库实体都有一个控制器。

例如,我会有一个用户控制器,一个Cart控制器,一个Item控制器等等。

我不认为有任何具体规则。它只是保持一切合乎逻辑。如果它符合您的逻辑,那么通常这一切都很重要,除非您在团队中,否则它必须符合所有人的逻辑。

希望这有帮助。