MVC MVP MVVM

MVC MVP MVVM

MVC MVP MVVM

MVC MVP MVVM浅谈,MVC、MVP和MVVM都是为了解决界面呈现和逻辑代码分离而出现的模式。MVC作为最经典的开发模式之一,经典的MVC模式是M-V-X模式的老祖宗,MVP和MVVM都是在MVC的基础上演化而来,和MVC框架模式一样,Model模型处理数据代码。这些架构的目的都是为了提高代码的复用率、降低代码的耦合度、便于模块测试、版本的迭代更新,下面对每个架构进行简单的介绍与使用。

  • MVC
  • MVP
  • MVVM

MVC

MVC
M:模型 业务逻辑处理
V :视图 处理数据显示
C: 控制器 Activity处理用户交互问题

特点:①:耦合性低。②:可扩展性好。③:模块划分明确。
activity厚重,业务扩及复杂。实际上Activity即显示视图,又控制逻辑。
View既依赖于Controller又依赖于Model,解耦程度不足。

MVP

MVP
M:依然是业务逻辑和具体实体模型。
V:对应activity,负责view的绘制以及用户交互。
P:负责完成View与Model质检的交互。

区别: Presenter将View与Model分离,使得View和Model之间不存在耦合,同时也将业务逻辑从View中抽离。所有的业务逻辑由Presenter主持者来控制。
数据Model通过Presenter和View交互,比MVC耦合性更低。

优点:模块职责划分明显,增加可测试性与可扩展性,隐藏数据,降低了程序的耦合度,提高了代码的重用性与灵活性。
缺点:视图的渲染在Presenter中,所以视图和Presenter的交互会过于频繁。如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。
一旦视图需要变更,那么Presenter也需要变更了

MVVM

MVVM

1View:对应于activity和xml,负责view的绘制和用户交互。
2.model:实体模型
3.ViewModel:负责完成View和Model间的交互,负责业务逻辑。

MVVM模式:采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。
ViewModel主要包括界面逻辑和模型数据封装,Behavior/Command事件响应处理,绑定属性定义和集合。

优点:便于代码移植,兼容MVC,方便测试,降低了程序的耦合度,提高了代码的重用性。
缺点:类会增多,ViewModel会越加庞大,调用的复杂度增加。

书到用时方恨少,纸上得来终觉浅。希望可以帮助到您。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115049.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java applet介绍,Java Applet教程介绍[通俗易懂]

    java applet介绍,Java Applet教程介绍[通俗易懂]Applet是一种特殊类型的程序,嵌入在网页中以生成动态内容。它在浏览器中运行,并在客户端运行。小程序的优势小程序有很多优点。它们如下:它在客户端工作,因此响应时间更少。担保的它可以由在许多平台下运行的浏览器执行,包括Linux,Windows,MacOs等。小程序的缺点客户端浏览器需要插件才能执行applet。你知道吗小程序的层次结构如上图所示,Applet类扩展了Panel。…

    2022年7月7日
    18
  • 怎么新建pytest的ini文件_python读取ini配置文件

    怎么新建pytest的ini文件_python读取ini配置文件前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

    2022年7月29日
    5
  • 视觉SLAM技术_智能视觉技术

    视觉SLAM技术_智能视觉技术https://www.sohu.com/a/258235815_468626

    2022年10月1日
    3
  • css清除默认样式_htmlclearboth

    css清除默认样式_htmlclearbothCSSclear属性   –定义和用法clear属性规定元素的哪一侧不允许其他浮动元素。说明:在CSS1和CSS2中,为清除元素增加外边距实现的。在CSS2.1中,会在元素上外边距之上增加清除空间,而外边距本身并不改变。可能的值值描述left在左侧不允许浮动元素。right在右侧不允许浮动元素。…

    2022年9月11日
    3
  • 在微型计算机中1mb等于多少字节,1mb等于多少字节「建议收藏」

    在微型计算机中1mb等于多少字节,1mb等于多少字节「建议收藏」1MB等于2^20字节。MB,全称“MByte”,计算机中的一种储存单位。字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。本教程操作环境:windows7系统、DellG3电脑。1MB等于2^20字节。1MB=1024KB=2^20B。1、字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一…

    2022年5月26日
    44
  • 开心网外挂开发之 Singleton 单件模式应用「建议收藏」

    开心网外挂开发之 Singleton 单件模式应用「建议收藏」经过我们的努力,操作开心花园的各个底层功能我都开发出来了,我把所有的直接操作的功能都封装成一个KaiXinHelper类,通过这个类我们可以登录开心网,可以获得开心花园的所有信息,可以收获、播种、除草

    2022年7月2日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号