MVC:
最早出现在Java领域一般MVC分为:Model(模型)、Controller(控制器)和View(视图)基于分层的目的,让彼此职责分开View一般通过Controller与Model进行联系Controller是Model和View的协调者View和Model不直接联系。基本联系都是单向的用户通过Controller来操作Model以达到View的变化
MVP:
从经典的MVC模式演变两者基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示Presenter完全把View和Model进行分离,主要的程序逻辑在Presenter中实现Presenter与View是没有直接关联的,而是通过定义好的借口进行交互,从而使得在变更View的时候可以保持Presenter不变所以Presenter与Model与View是双向联系,但Model与View无联系
MVVM:
相对于前面两种模式,MVVM只是把MVC的Controller和MVP的Presenter改成了ViewModelView的变化会自动更新到ViewModel,ViewModel的变化也会自动同步到View上显示这种自动同步是因为ViewModel中的属性实现了Observer(观察者),当属性变更时都会触发对应的操作