单个视图在真正的MVC(桌面)应用程序中有什么好处?

时间:2011-03-16 01:08:34

标签: javascript model-view-controller singlepage

我是构建单页Javascript应用程序的团队的成员。我主要来自网络背景(Struts,Spring,Rails,Sinatra等),我知道它对MVC模式有不同的解释。我在Desktop MVC中看到的一件事(我相信它适用于单页Javascript应用程序)是他们使用可实例化的模型和单例控制器和视图。也就是说,可能有Company.BookCompany.recentlyPurchasedBooksControllerCompany.recentlyPurchasedBooksView。控制器保留模型(或其集合)的实例,并且视图在模型更改时自行更新。

我的团队 - 也来自网络背景 - 发现这非常“神奇”。他们非常喜欢这样的工作流程,其中控制器创建视图的实例,用模型填充它,并将其呈现给页面的一部分。

我对此有一些反对意见,但我没有任何亲身经历告诉我,我的异议实际上重要。第一个是控制器不应该知道DOM,因此不能告诉视图在哪里渲染。他们认为视图应该是可实例化的(“如果你想在页面上看多个视图副本怎么办?”),我回答说他们可能想要在这些情况下使用集合视图。

我在哪里可以找到有助于解决此争论的博客文章,书籍,参考资料,任何?为了开发人员的舒适而打破MVC模式是长期的净收益还是净损失?

1 个答案:

答案 0 :(得分:2)

虽然我自己不使用它*,puremvc有一个MVC实现的javascript端口,我发现它很有启发性。它清楚地分离了关注点,包括你提到的那个,控制器 - 查看知识,很漂亮,就像他们的对象图一样。

*对于我一直在使用JavaScriptMVC的一页javascript网络和空中应用程序,我发现它可以缓解我的开发问题没有尽头(虽然我没有使用所有这些,只是我喜欢的部分 - VC )。