MVC->MVP,通过P层将M和V层完全解耦
MVP->MVVM,由事件驱动改为数据驱动
MVC,最早的架构模式,只是简单定义了Model,VIew和Control层,大体分了一下逻辑,但是由于没有限制,导致M层可以操作View层,耦合度较高
MVP,基于MVC的缺点,用P层来代替C层,P层作为一层代理,作为M层和V层的中介,将M层和V层完全解耦
MVVM,是架构思想的一个转变,从MVP的事件驱动改为数据驱动。
事件驱动和数据驱动的完整交互如下
事件驱动:用户交互->触发事件->返回结果->UI更新
数据驱动:用户交互->触发事件->数据更新->UI更新。
不同的点在于,MVP是触发了事件,然后,根据事件的返回结果,做相应的UI更新;而MVVM通过数据绑定,VM层触发事件后,只需要更改对应的数据,而对应的UI则会自动更新,更加专注于业务逻辑的处理。