mvvm mvp mvc概念

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层。
posted @   NetUSA  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示