为什么要把导航规则从MVC代码中分离出来呢?



越来越多的框架试图将导航规则从代码中分离出来。例如,JSF在faces-config.xml中使用"navigation-rule"标签来控制页面流。新的xcode 4.2引入了故事板,这样开发人员就不必编写代码来处理场景之间的导航。我的问题是为什么将导航流从代码中分离出来如此重要。在控制器中编写代码来处理页面流有什么问题?

我的想法是:在一个地方指定一个导航流可以让你更容易理解你不熟悉的代码库——你可以确切地看到你如何到达一个给定的视图,而不必去寻找它。

你提到了XCode中的故事板编辑器——另一个优点是将导航结构作为一级实体,使其可用于工具。

如果您的框架(可能是空Java页面流框架之一?)也检查用户是否坚持此流,则可能很容易捕获如果违反预期流将发生的错误。(例如,如果用户试图打开中间的"向导"类型的交互。)

与"直接"的代码相比,使用这样的框架会增加认知开销。这并不意味着你应该忽略抽象级别高于"控制器方法代码"的模式,否则你会把简单的代码变成意大利面条式的代码。显然,形式化导航流的好处随着应用中的视图数量和它们之间连接的复杂性而增加。

最新更新