是什么让您决定创建新控制器而不是向现有控制器添加更多操作?你在哪里划线?为什么?
答案 0 :(得分:5)
决定何时创建新控制器的主要因素是它们执行的逻辑/功能。您需要确保 separate concerns :
public class ProfileController { }
public class MainController { }
public class AccountController { }
public class ShoppingCartController { }
以前的每个控制器都用于协调相应域服务/模型与其视图之间的通信。
答案 1 :(得分:5)
不进入图片当然是行动的数量¹ - 至少在“哦,我在这个控制器中超过50个动作,让我们开始另一个”的意义上。
准则²应该是:控制器是对同一类型对象进行操作的逻辑组(相同类型的模型可能是更好的定义)。如果您的模型功能如此丰富,以至于可以对其执行30个单独的操作,请继续将它们放在同一个控制器中。
硬币的另一面:如果你有简单的模型并且你发现自己只用几个动作来编写控制器,那么这应该是对应用程序的可维护性感觉良好而不是担心的理由。
注意:
¹当然,具有许多操作的控制器是可能的代码滥用的红色标志,因此应该的数量 - 而不是某种硬规则。
²这真的是一个指导原则 - 这里的目标是建立一个可维护的系统,而不是遵循一些宗教经文。
答案 2 :(得分:2)
作为一般的经验法则,我尽可能简单地保持所有动作,如果它们变大或太多,我会看到我是否可以创造帮手功能。
如果需要,我每个数据库实体都有一个控制器。
例如,我会有一个用户控制器,一个Cart控制器,一个Item控制器等等。
我不认为有任何具体规则。它只是保持一切合乎逻辑。如果它符合您的逻辑,那么通常这一切都很重要,除非您在团队中,否则它必须符合所有人的逻辑。
希望这有帮助。