当 Jeremy & Chad发布他们的 FubuMvc 项目时,他们提到的差异化因素之一是他们的“Thunderdome Principal”:
“Thunderdome 原则”——所有 Controller 方法都接受一个 ViewModel 对象(或在某些情况下为零个对象)并返回一个 ViewModel 对象(一个对象进入,一个对象离开)。Controller 类永远不会直接暴露给与 HttpContext 相关的任何内容。没有什么比看到人们尝试编写模拟或存根新 IHttpContextWrapper 接口的测试更让我哭泣的了。同样,Controller 方法不返回 ViewResult 对象,并且通常与所有 MVC 基础结构分离。我们很早就采用了这种策略,以使控制器测试在机械上更简单。它确实实现了这个目标,但它也使 Controller 代码非常精简且易于阅读。我们将在 KaizenConf 解释这是如何工作的。
他们的“一个 ViewModel(或零)”方法的优势是什么?