似乎有大量可能的MVC配置/架构(MVC,MVVM,MVP,HMVC,PAC,文档视图......)。是否有任何目前被接受的“最佳”或最先进的MVC架构?什么是最新的想法?或者它是一个免费的和/或简单地绑定到一个开发的平台(例如MVF MVF)?
(特别是我对在桌面/富客户端应用程序中应用的MVC感兴趣。)
答案 0 :(得分:6)
否。您不会就“当前接受的”最佳架构达成任何协议。
肯定不是MVC或MVP。这些架构分别起源于70年代末和90年代初。 MVP是对MVC的一种改进,但是自MVP发明以来的二十年中,它已经很明显地遭受了许多很多缺陷。这就是为什么会有这么多新的竞争架构。
“模型”和“视图”的概念被广泛接受,并且似乎是当今所有当前架构模型的共同点。真正的问题是如何最好地将它们联系在一起。除了模型和视图之外,还需要其他东西,但是什么?
大多数较新的体系结构倾向于通过使用数据绑定,表达式或类似机制使视图链接或直接绑定到模型和“其他”来实现此目的。这样,模型中任何可以直接由视图绑定的东西都不需要涉及“其他东西”。
我个人最喜欢的是MVVM。我喜欢这样一个事实:“视图模型”在概念上只是一个“模型”,具有任何其他模型的所有方面,除了它(通常)不会写入磁盘。事实上,如果不是混淆“MVVM”可以重命名为“MV”,因为它几乎不需要除了视图和模型之外的任何其他东西。 MVVM不仅可以用于WPF,还可以用于任何具有高级数据绑定功能的表示框架。不幸的是,这不包括GWT和Cocoa。我也喜欢MVVM,因为它倾向于完全消除冗余或重复的代码。
MVVM并不是城里唯一的高级玩家。基于传统模型和视图构建的面向方面的方法和命令架构也有类似的愿望。
最重要的是,这仍然是一个积极研究的领域,目前尚未达成共识。 MVVM是新架构中最受欢迎的,但不是唯一的架构。陪审团还在外面。
注意:要了解较新的体系结构是如何改进MVC和MVP的,请从标题“重复代码”开始查看this comparison of Cocoa and WPF并结束“命令架构”部分。
答案 1 :(得分:3)
最近针对胖客户端进行的最新架构研究正由Google完成。与MVP架构。
查看有关MVP的GWT文章
http://code.google.com/webtoolkit/articles/mvp-architecture.html
http://code.google.com/webtoolkit/articles/mvp-architecture-2.html
另请参阅此YouTube视频http://www.youtube.com/watch?v=PDuhR18-EdM
至于回答你的问题,除了说MVC有点过时之外,我认为在哪条路上是非常主观的。它不是特定于平台的,除了您选择的框架可能决定架构:(