mvc 和 mpv 的差别

从需求的层面讲,有啥差别?
任何需求都有,一个页面(v),页面要表示一定的数据(m),根据用户的请求显示不同的数据(c)。
几乎任何的软件都可以按照上面的方式切割需求。所以有了mvc模型。
那么mpv又有啥不同的,说的简单点:就是想让m和v更纯粹。怎么个纯粹法呢?
下面举例说明。
mvc 是怎么个流程呢。
首先用户点击某个控件(用户要看A数据)
1.按钮高速控制器(v->c):你告诉数据层,我要显示A,让他把A数据准备好。
2.控制器高速模型层(c->m):你把A数据准备好
3.模型层准备好数据,告诉view(m->v):我把数据准备好了(view收到通知,自动完成了数据的表示)。
那么mpv是个怎么样的流程的,看下面的变更过程
view和mode都对Controller说:我们俩之间本来也没多少联系,要不这样,以后我们俩不直接联系了,我们俩之间的通讯都交给你行不。
Controller一想,也行,那我得换个新名称了,以前我只管把view的请求传递下去,现在我还得把数据准备好的消息在通知给view,那我就成了Presenter了,view和mode都表示同意,于是一个新的模式产生了(mvp)
改革后的mvp流程
首先用户点击某个控件(用户要看A数据)
Presenter既然接管了本应该有view处理的收数据完了消息的机能,那么就自然需要继承这个接口,这样就变成了,Presenter继承了view收到消息更新数据的接口。
1.按钮告诉控制器(v->p):你告诉数据层,我要显示A,让他把A数据准备好。
2.控制器告诉模型层(p->m):你把A数据准备好
3.模型层准备好数据,告诉p(m->p):我数据准备好了(view收到通知后,调用了view表示数据的接口,完成了数据的表示)。

猜你喜欢

转载自blog.csdn.net/xie__jin__cheng/article/details/88124142