关联
MVC、MVP和MVVM 都是常见的软件架构设计模式,它通过分离关注点来进行代码的组织方式。不同设计模式只是为了解决一类问题而总结出的抽象方法,一种架构模式往往使用了多种设计模式。
它们之间是递进关系,不断优化的:MVC的Model和View还有一定程度的耦合,而在MVP h和MVVM中Model和View彻底分离,Model和View只向外暴露方法让Presenter调用;MVVM通过自动同步数据更新到视图,解决了MVP中手动同步的麻烦,简化了代码。
区别
MVC:将应用抽象为数据层(Model),视图层(View),逻辑层(Controller),降低了项目的耦合。但MVC未限制数据流Model和View间可以通信。
MVP:限制了Model和View的交互,两者交流需要通过Presenter,这样将两者分离,提高了项目维护和模块复用性。
MVVM:是对Presenter的修改,将M--->V的同步操作自动化,降低了代码复杂度。