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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 卷积神经网络概念与原理[通俗易懂]

    卷积神经网络概念与原理[通俗易懂]一、卷积神经网络的基本概念受Hubel和Wiesel对猫视觉皮层电生理研究启发,有人提出卷积神经网络(CNN),YannLecun最早将CNN用于手写数字识别并一直保持了其在该问题的霸主地位。近年来卷积神经网络在多个方向持续发力,在语音识别、人脸识别、通用物体识别、运动分析、自然语言处理甚至脑电波分析方面均有突破。卷积神经网络与普通神经网络的区别在于,卷

    2022年6月13日
    29
  • eclipse中android开发_Android开发教程

    eclipse中android开发_Android开发教程创建第一个Android项目本系列文章主要针对基于Eclipse的IDE下进行Android开发的技术、方法、过程与技巧进行记录。本文将记录,以Win1064位操作系统为例,使用Eclipse创建第一个Android项目,并配置运行的过程。该过程包括:创建Android工程和在Android虚拟设备上运行程序。创建Android工程1)启动Eclipse

    2022年10月4日
    0
  • 无人机wifi图传模块(手机远程控制)

    现在手机的省内流量也便宜了,是时候考虑用手机3G,4G网络来超远程控制无人机、无人车、无人船了。超远程的意思是经过IP互联网,可以操控另一个城市或另一个国家的无人机。网灵科技的“全球鹰”无人机远程控制模块就是这个思路。既然是DIY,那么就要省钱,咱不买“全球鹰”远控模块,就用个闲置的安卓手机放到无人机上去吧,手机可以3G、4G上网,手机摄像头可以做图传用,手机再想办法跟飞控的数传口连接通信,实现数传和远程手柄遥控。

    2022年4月17日
    250
  • 概率论:假设检验-t检验、卡方检验和AD-Fuller test

    概率论:假设检验-t检验、卡方检验和AD-Fuller testhttp://blog.csdn.net/pipisorry/article/details/51184556卡方检验Chi-Squarethechi-squaretestmeasuresdependencebetweenstochasticvariables,sousingthisfunction“weedsout”thefeaturesthatare…

    2022年6月19日
    33
  • 数学建模算法学习——各类模型算法汇总[通俗易懂]

    数学建模算法学习——各类模型算法汇总[通俗易懂]相关模型解决的问题数据分析类算法一览100个经典动态规划方程优化问题线性规划简介:线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab中规定线性规划的标准形式为其中c和x为n维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。代码实现…

    2022年6月23日
    29
  • softmax、softmax损失函数;交叉熵、交叉熵损失函数

    softmax、softmax损失函数;交叉熵、交叉熵损失函数

    2022年6月26日
    26

发表回复

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

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