MVC
1. Model(数据层):负责处理数据逻辑,比如保存、更新、删除数据库数据记录等。
Model是又体现面向对象编程思想:每个Model和数据库表相对应,就是类;每个Model实体和一条表记录对应,即对象。
2. View(视图层):负责处理视图显示,用户交互的UI。比如用户登录界面,可以输入自己的用户名、密码,点击登录按钮进入系统。
3. Controller(控制层):负责处理业务逻辑。比如要更新用户密码,就要判别操作者的是否具有更改密码的权限等。
MVC体现一个分层思想软件架构思想,每层各司其职。从操作者角度看,应该是VCM。
之所以称MVC,是从程序设计、编写的先后顺序而言的。
MVP(Model-View-Presenter)是MVC进一步演化出来的,主要为瘦客户端服务的。
1. Model(数据层):负责处理数据逻辑。
2. View(视图层):负责处理视图显示
3. Presenter:负责连接Model层和View层,是这两层的中间纽带,负责处理业务逻辑。
MVP中,Model层和View层之间不能直接交互,要通过中间Presenter层进行联系,其中View层和Presenter层是通过接口进行交互(有点像编写微服务)。
这些接口定义,是要事先设计、约定好的,View\Presenter的code人员都理解并遵循,即指定View层和Presenter之间的契约(Contract)。
MVP中,View层没有任何的业务逻辑,从而比较薄。
Presenter层让它如何展示,它就如何展示,即被动视图(Passive View),意思是它没有任何的主动性。
缺点是:减少了View层代码,但随着业务的复杂度不断提高,Presenter层代码也会变得越来越复杂臃肿。
MVVM(Model-View-ViewModel)是MVP进一步演化出来的,产生双向绑定的概念,减少胶水代码,使得代码维护更加轻松。
1. Model(数据层):负责处理数据逻辑。
2. View(视图层):负责处理视图显示。
3. ViewModel:是连接Model层和View层中间纽带,负责处理业务逻辑。
4. View层和ViewModel层是双向绑定的,View层的变动会自动反映在ViewModel层,ViewModel层的变动也会自动反映在View层。
标签:mvp,mvvm,ViewModel,视图,Presenter,mvc,Model,负责,View
From: https://www.cnblogs.com/NetUSA/p/16944304.html