按照Martin Fowler的观点,MVC的最有意义的思想在于M和VC进行了分离,而不在于V和C进行了分离。这个思想似乎简单、原始,但却普遍存在,历久弥新。
Martin Fowler同时指出:MVC的一些assumptions现在可能已经过时,而且有些assumptions的过时是致命的。比如:MVC的一个assumption是所有View的states应该都可以derive自Model的states;但是,现在的rich client applications中,很多View states是其特有的,不能从Model中推出。
而正是由于这些过时的assumptions,从MVC衍生出了不少新的pattern,如MVVM,Application Model(Smalltalk)等。这些新的patterns关注的一个焦点就是把View的各种states和behaviors放到一个新的model之中。
附:Martin Fowler关于MVC的结论(http://martinfowler.com/eaaDev/uiArchs.html):
“Make a strong separationbetween presentation (view &controller) and domain (model) -Separated Presentation.
Divide GUI widgets into a controller (for reacting touser stimulus) and view (for displaying the state of the model). Controller andview should (mostly) not communicate directly but through the model.
Have views (and controllers) observe the model toallow multiple widgets to update without need to communicate directly -Observer Synchronization.”