admin 管理员组

文章数量: 887044


2024年1月12日发(作者:swing和javafx区别)

2021年第6期China

Computer

&

Communication信IB与电IE针算机工程惑用藝术MVVM模式在Android项目中的应用崔慧娟(内蒙古财经大学,内蒙古呼和浩特

010070

)摘

要:Android环境下的程序开发使用的架构模式主要有MVC

(Model

View

Controller)

,

MVP

(Model

View

Presenter)和MVVM

(Model-View-ViewMode

),最经典的框架是MVC模式,最常用的框架是MVP模式,而最新的框架是

MVVM模式.笔者通过对3种框架模式进行比较发现,在Android项目应用中,MVVM模式减少了程序代码的耦合,可以通

过DataBinding技术实现一次绑定功能.因此,MVVM模式能够有效缩短Android项目的开发周期,提高项目维护效率,

节约成本,在Andorid项目开发中占有越来越重要的地位.关键词:MVVM模式;MVC模式;MVP模式;Android项目开发中图分类号:TP311

文献标识码:A

文章编号:1003-9767

(2021)

06-001-03The

Application

of

MVVM

Mode

in

Android

ProjectCUI

Huijuan(Inner

Mongolia University

of

Finance

and

Economics, Hohhot

Inner

Mongolia

010070,

China)Abstract:

The

architecture

patterns

used

in

program

development

in

the

Android

environment

mainly

include

MVC,

MVP,

and

MVVM.

The

most

classic

framework

is

the

MVC

pattern,

the

most

commonly

used

framework

is

the

MVP

pattern,

and

the

latest

framework

is

the

MVVM

pattern.

By

comparing

the

three

framework

modes,

the

author

found

that

in

the

Android

project

application,

the

MVVM

mode

reduces

the

coupling

of

the

program

code,

and

can

realize

the

one-time

binding

function

through

the

DataBinding

technology.

Therefore,

the

MVVM

model

can

effectively

shorten

the

development

cycle

of

the

Android

project,

improve

the

efficiency

of

project

maintenance,

and

save

costs.

It

occupies

an

increasingly

important

position

in

the

development

of the

Andorid

ds:

MVVM

mode;

MVC

mode;

MVP

mode;

Android

project

development0引言近年来,Android系统凭借开放性、平等性、方便性及硬

层请求数据;数据模块层将请求的数据返给显示层。这样可

以完成程序与用户之间的一个完整交互。件的丰富性等优势叫迅速占领市场。2018年手机市场占有报

告显示,Android手机的市场占比达到86%,几乎是垄断地位叫1

MVC、MVP

MWM

概述在Android环境下的程序开发中,使用的架构模式主要有

MVC、MVP和MWM。后者都是在前者的基础上发展起来的,

目标都是将界面层、逻辑层、数据层三者們,使每层各司其职。1.1

MVC模式在开发JAVA程序的过程中,最经典的技术框架是

图1

MVC的执行流程MVC模式的优点:一方面,MVC模式是经典模式,层

次分明,易于开发和维护;另一方面,MVC模式将业务逻

Model、View、Controller

框架(MVC)。MVC

的执行流程

如图1所示。MVC的各层都有相应的任务,显示层主要负

责接收用户请求,主要指XML文件层;控制层在接收到显

辑、数据与界面显示分离,真正实现了代码的高内聚低耦合。

MVC的缺点:View对Model的依赖,导致View层也包含

了业务逻辑。示层传来的用户请求后,完成相应的业务逻辑,向数据模块

作者简介:崔慧娟(1984-),女,内蒙古包头人,硕士研究生,助教。研究方向:模式识别与智能系统。1

针算机工程矯用枝术1.2

MVP模式China

Computer

&

Communication信■与电1&2021年第6期2

MVVM模式的实例应用2.1代码结构主界面底部布局一个按钮,用户可在界面中点击按钮请

Android环境下的JAVA程序开发,最常用的技术框架

Model、View

Presenter

框架(MVP

)。MVP

的执行流

程如图2所示。各层的功能为:展现层(View)就是用户看

到的屏幕界面,负责与用户交互,接收用户的请求,并将最

终的请求结果返回给用户;表示层是展现层与模块层之间的

桥梁,负责完成业务逻辑并向模块层发出数据请求;模块层

负责处理数据的加载或者存储,比如从网络或本地数据库获

求用户数据。从图4可以看出,本项目实例主要分为三层:

Model、View、ViewModel

层。在实例中,Model

层包含一

个文件,文件中的DataManager负责从服

务端获取用户信息,服务端收到请求后返回给客户端用户的

取数据等,并将更新后的数据返回给表示层"Ijson串,DataManager的loadData()函数负责接收并解析用户

的信息。view包属于View层,包含一个文件MainActivity.

MVP是从MVC优化来的一种模式,MVP将MVC中

的Controller层进行了优化并生成了

Presenter。MVP的表示

层和MVC的控制层一样,主要负责核心逻辑,不一样的是

java,

MainActivity负责装载布局XML文件,数据的变化会

引起视图的自动更新。viewmodel包属于ViewModel层,包

MVP的表示层阻断了展现层和模块层的直接联系,从而使展

现层和模块层更加专注于业务逻辑。MVP的优点是降低了展

含一个文件

,

UserViewModel

负责完成

业务逻辑并向模块层发出数据请求,将模块层返回的用户信

息通过数据绑定自动更新[111o现层和模块层之间的耦合度,使其结构清晰,维护方便,使

得单元测试更方便而且代码复用率也提高了。MVP的缺点是

展示层中的每个控件都得声明,对每个控件都需要使用get

方法获取控件的值,使用set方法更新控件的值。MWM的

执行流程如图3所示。▼

E

b

beanci

HttpResponseData

ci

E

User▼

El model<;:o

DataManager

模块层▼c

MainActivity

| 讪]冈戸▼

£9

viewmodel

T力国肚UserViewModel

I

库接桥,打ci

t

Constantci

E

MyApp►

El

-mwm

(androidTest)►

El

(test)▼tires►

EX

drawable▼

a

layoutDataBinding配置文件仆

activityjnain・xmr|图2

MVP的执行流程图3

MWM的执行流程图4代码结构1.3

MVVM

模式对于Android环境下的JAVA程序开发,最新的技术框

2.2数据绑定技术在布局文件中,data标签包含两个数据变量和事件变量。架是

Model、View

ViewMode1

框架(MWM)。MWM

的执行流程如图3所示。各层功能与MVP模式基本相同。

当用户点击按钮时,XML布局文件的clickListener监听到之后,会触发

MainActivity

中的

ckListenerQ

事件,

MVVM与MVP的最明显区别是MVVM模式中需要用到

DataBinding,

DataBinding

是指数据绑定,DataBinding

是在

布局文件中实现数据绑定声明,数据的变化会引起视图的自

并调用

userViewModel

getUserlnfoQ

函数,实现

View

将用户请求事件发送到ViewModel层。动更新,使用DataBinding会减少逻辑代码。从图3可以看出,MWM模式并不是简单地用ViewModel

2.3数据传递与数据更新在

UserViewModel

层,userViewModel

替换掉MVP中的Presentero

MVVM模式中的ViewModel

与View是通过DateB

inding实现的,而在MVP模式中,

getUserlnfbQ

函数调用了

DataManager

类的

loadDataQ

函数,

因此ViewModel层将用户请求传递到Model层。在Model

层的DataManager类中,loadData()函数向服务器请求数据,

Presenter是通过View的对象直接调用View中的一些接口方

法实现的。ViewModel可以理解成是View中的数据模型和

如果数据请求成功,则通过调用ess()将解

Presenter的合体,它通过双向绑定解决了

MVP中Presenter

与View联系紧密的问题®呵。析后的用户数据返回给ViewModel层。Model层负责更新用

户数据,并通过DataBinding实现界面用户信息的自动更新。2

2021年第6期China

Computer

&

Communication信IB与电IE针算机工程惑用藝术3结语Android环境下的JAVA程序开发使用的架构模式主要

有MVC、MVP和MWM,本文对这3种模式的工作原理做

[4]赵健.基于改进MVVM的在线教育平台设计与实现[D].

大连:大连理工大学,2019:26.⑸

温海标.MWM模式及其应用研究[J].电脑知识与技

了详细阐述与比较。通过比较发现,MVVM模式能够有效缩

短Android项目的开发周期,提高项目维护效率,节约成本。

术,2020,16(24):98-99.[6]

黄冰.基于MVVM的高校团委网站设计与开发[J].电脑

知识与技术,2019,15(11):89-90.在实际的使用中,MVVM模式的开发效率明显优于前两种模

式。因此,MWM模式在Android项目中的应用越来越广泛,

[7]

薛玉倩.基于MVVM管理信息系统的研究与应用[J].内

蒙古科技与经济,2019,438(20):65-66.深受广大开发者的欢迎。[8]

吴键成,周旭宇,陈怡芯.类MVVM架构应用于在线教学

参考文献[1]

张思民.Android

Studio应用程序设计[M].北京:清华大

学出版社,2017:45.平台的设计与实现[J].电脑知识与技术,2020(5):83-86.[9]

王鹤琴,朱珍元.基于MVVM模式的Web开发研究[J],

衙泽学院学报,2019,41(2):7-13.[10]

潘凤.MWM架构在Android开发中的应用[J].数码世

界,2020,173(3):78-79.[2]

肖云鹏,刘红,刘宴兵.Android程序设计教程[M],北京:

清华大学出版社,2019:12.⑶校丽丽.基于MWM模式的前端框架插件库设计与实

现[D],成都:西南科技大学,2019:53 .[11]

朱肖颖•基于项目驱动的教学模式在Android课程中的

应用[J].知识文库,2019(7):132-133.3


本文标签: 模式 数据 用户 项目 请求