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

Eli*_*eth 6 c# asp.net-mvc controller asp.net-mvc-4

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

xan*_*ded 5

应该确定何时创建新控制器的主要因素是它们执行的逻辑/功能.您需要确保单独关注:

public class ProfileController {  }

public class MainController {  }

public class AccountController {  }

public class ShoppingCartController {  }
Run Code Online (Sandbox Code Playgroud)

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


Jon*_*Jon 5

什么肯定是不能进入的画面是actions¹的数量-至少在这个意义上,"哦,我是在这个控制器50分的动作,让我们开始一个又一个".

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

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


笔记:

¹当然,具有许多操作的控制器是可能的代码滥用的红旗,因此应该考虑这个数字- 只是不是某种硬规则.

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