提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、它们分别是什么
1. mvc
MVC全名是 Model--View--Controller,是 模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
Model 层处理数据,业务逻辑等
View层处理界面的显示结果
Controller层起到桥梁的作用,来控制View层和Model层通信以此来达到分离视图显示和业务逻辑层。
View:XML布局文件。
Model:实体模型(数据的获取、存储、数据状态变化)。
Controller:对应于Activity,处理数据、业务和UI。
2. mvp
而MVP其实是MVC的一种演进版本,它更简单,将 MVC中的Controller改为了Presenter,View通过接口与Presenter进行交互,降低耦合,方便进行单元测试。
其核心理念是通过一个抽象的 View 接口(不是真正的View层)将 Presenter 与真正的 View 层进行解耦。Persenter 持有该View接口,对该接口进行操作,而不是直接操作 View 层。这样就可以把视图操作和业务逻辑解耦,从而让 Activity 成为真正的 View层。
View: 对应于Activity和XML,负责View的绘制以及与用户的交互。
Model: 依然是实体模型。
Presenter: 负责完成View与Model间的交互和业务逻辑。
3. mvvm
MVVM模式分为Model,View,ViewModel 三个部分
(1).Model:数据层,包含数据实体和对数据实体的操作
(2).View:界面层,对应于Activity,XML,View,负责数据显示以及用户交互。
(3).ViewModel:关联层,将Model和View进行绑定,Model或者View更改时,实时刷新对方。
二、区别
1.mvc与mvp
MVC中是允许Model和View进行交互的,而MVP中很明显,Model与View之间的交互由Presenter完成。
2.mvp 与 mvvm
mvp中的presenter与view是一对一的关系
mvvm中的多个viewMode可以被映射到一个view中