MVC 、MVP和MVVM

MVC、MVP到MVVM,我们可以理解为是一个演化过程,它们三个角色(模块)划分是一样的,M数据逻辑处理,V视图展示处理,C/P/VM业务逻辑处理,不同的是角色之间的数据流向(沟通机制),数据一般是数据结构和事件。MVP是对MVC的改进,View和Model解藕,所有沟通都通过Presenter中转,MVVM是对MVP的改进,View和ViewModel解藕。请看下面三张图

MVC 、MVP和MVVM

MVC 、MVP和MVVM

MVC 、MVP和MVVM

MVC / MVP / MVVM 到底该如何选?有对错吗?