代码之家  ›  专栏  ›  技术社区  ›  Mayo

保持控制器精简(操作方法太多)

  •  22
  • Mayo  · 技术社区  · 14 年前

    我在做我的第一个真正的工作ASP.NETMVC项目,我注意到我一直在使用的控制器越来越大。这似乎违背了保持控制器精简的最佳实践。

    也就是说,控制器有大量的动作方法。直觉上,我想把控制器分解成子控制器,但我看不到一个简单的方法。我可以简单地把控制器分解成不同的控制器,但是我放松了层次结构,感觉有点脏。

    有必要用大量精简操作重构控制器吗?如果是这样,最好的方法是什么?

    3 回复  |  直到 7 年前
        1
  •  17
  •   Patrick Karcher    14 年前

    首先,当您听说将控制器代码保持在最小值是件好事时,这主要是指使每个操作方法尽可能的精简(将逻辑放入业务类中, 进入视图和视图模型。)看起来你正在这样做,这是伟大的。

    至于有“太多”的动作方法,这是一个判断调用。这实际上可能是一个良好组织的标志,你的每一个行动都集中在一件事上。另外,也许你使用的动作专门用于渲染?而且,它可能只是你的解决方案的性质,有很多事情要做有关你的控制器的主题。

    所以,我猜你可能没事。然而,为了确保,在笔记纸上把控制器分成2或3个控制器,并勾勒出你的故事是如何从一个动作转移到另一个动作的。如果你发现你的工作流程与更多的控制器一起工作,你应该打破它。尤其是如果您以后要添加此功能。你越早爆发越好。

        2
  •  3
  •   Dave Swersky    14 年前

    问得好。

    我相信一个“瘦”控制器可能仍然需要“宽”或“高”,这取决于你想如何扩展类比。如果没有一个干净的方法来分解一个需要做很多事情的控制器,我认为只要每个操作都专注于准备视图/视图模型,并且代码大小有限,这就不是问题。

        3
  •  2
  •   Sam Saffron James Allen    14 年前

    另一个结构性的选择是为动作的逻辑分组引入分部类。使用vscommands之类的命令将文件分组在一起。

    推荐文章