首页 > 其他分享 >mvvm mvp mvc概念

mvvm mvp mvc概念

时间:2022-12-02 14:36:33浏览次数:28  
标签:mvp mvvm ViewModel 视图 Presenter mvc Model 负责 View

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

相关文章

  • spring mvc中普通类获得request
    springmvc中,在控制层很容易获得request,response,但在其他层的话获得的话,其实必要性不大,但可以实现:在web.xml中加入<listener><list......
  • spring mvc下css js中的jsession id?
    在http://www.mkyong.com/spring-mvc/jsp-jsessionid-added-to-css-and-js-link/中提到了在springmvc+jsp中,对资源文件的引入问题,比如:<html><hea......
  • springMVC
    在学习springMVC框架时,我发现原来地址栏不能发送post请求,如下图  这是我直接在地址栏输入http://localhost:8080/springMVC/user/login出现的报错,大概意思就是不支持g......
  • WPF MVVM模式下如何给Textbox设置焦点(GalaSoft.MvvmLight)
    项目场景:最近在使用WPFMVVM模式进行开发的时候遇到了个头大的问题,就是如何通过VM去驱动V里面的试图控件,例如最简单的通过VM里面去控制前端页面里面的文本框焦点问题,平常简......
  • MAUI新生2.4-数据绑定和MVVM:MVVM的消息机制
    当两个对象之间需要建立松耦合关系时,特别适合使用消息机制。如ViewModel需要控制View进行某些操作时,如弹出对话框、播放动画,由于ViewModel对View是无感的,我们不能在ViewMod......
  • SpringMVC01(SpringMVC的简介+入门案例)
    一、大纲二、springMVC的开发流程三、SpringMVC的操作"思路"3.1、对SpringMVC(n+1)代码块图片中的"config包"下的内容一个springMVC只要配置一次,"controller......
  • SpringMvc-初识
    ----------------------------------------------------------------1、环境搭建1.1jar包<spring.version>4.3.18.RELEASE</spring.version><!--spring-mvcbegin......
  • 【ASP.NET Core】MVC控制器的各种自定义:特性化的路由规则
    MVC的路由规则配置方式比较多,咱们用得最多的是两种:A、全局规则。就是我们熟悉的”{controller}/{action}“。app.MapControllerRoute(name:"bug",pa......
  • MVC中,如果从controller返回的不是一个html,而是一个文本,使用AJAX中如何获取?
    controller代码:publicActionResultUploadPicture(){returnContent("ok");//returnContent("{result:'"+imgMsg+"',url:'"+imgUrl+"'}");//本行是......
  • mvc中使用视图模板cshtml动态生成generated文件
    一、原因在MVC中,经常会使用一些模板视图,这样会把公用的页面定好,各个功能模块就可以引用调用,无需每个页面都写相同的代码,如果后续修改,也需要在一个地方就可以更改内容。比如......