MVC、MVP、MVVM模式对比总结(2)横向构架模型

前言说明

在实战项目及学习中来总结一下Android端项目构架

包括MVC、MVP、MVVM,主要针对移动Android端

该篇只描述横向构架模型

目录

1.构架基础

2.横向构架模型

3.纵向构架流程

4.代码例子

2.横向构架模型

MVC构架

综合说明:

以manager作为controller层

activity/fragment(view)调用manager(controller)处理请求

manager(controller)调用NetHelp(model)处理业务逻辑

虚线代表返回结果

NetHelper网络通信使用AsyncTask+URLConnection实现

MVP构架

综合说明:

presenter接收了view传递的接口引用来操作view

activity/fragment(view)调用presenter处理请求

presenter调用NetHelper(model)处理业务逻辑

虚线只返回到presenter

但presenter通过接口操作activity/fragment(view),它们的箭头双向通信

presenter也可以通过eventbus或callback与activity/fragment(view)通信

NetHelp网络通信可以进化为使用OkHttp实现

MVVM构架

综合说明:

viewModel通过dataBinding与xml布局文件绑定,可直接操作原始数据

viewModel与activity/fragment(view)也是双向通信双向箭头

虚线代表结果返回,只返回到viewModel

viewModel肯定还是需要得到activity相关对象才可显示供用户查看

这里可以是activity中的环境对象或activity本身

当然viewModel也可以通过eventbus或callback与activity通信

NetHelp网络通信可以进化为使用流行的Retrofit+RxJava实现

构架模型小结

1. model模型层,一般不仅仅包括业务逻辑模型,也包括实体模型.

业务逻辑一般是处理具体业务的层,例如此文中一切处理数据请求的DBHelper都当做此层

可能在后端不尽相同.后端业务模型包括Service中间层,DAO数据持久层

实体是专门承载数据,例如用户实体User, 学生实体Student.

2. 在构架方面,此文只相对固定的模式,我觉得在具备基础的条件下,完全可以无招胜有招

还是那句老话,按照项目选择最合适构架

例如我个人觉得以mvp为标准,使presenter引用view接口下

xml布局也还是可根presenter绑定,那么presenter即可直接操作原始数据,可以操作view方法

时间: 2024-10-05 15:39:36

MVC、MVP、MVVM模式对比总结(2)横向构架模型的相关文章

浅析前端开发中的 MVC/MVP/MVVM 模式

MVC,MVP和MVVM都是常见的软件架构设计模式(Architectural Pattern),它通过分离关注点来改进代码的组织方式.不同于设计模式(Design Pattern),只是为了解决一类问题而总结出的抽象方法,一种架构模式往往使用了多种设计模式. 要了解MVC.MVP和MVVM,就要知道它们的相同点和不同点.不同部分是C(Controller).P(Presenter).VM(View-Model),而相同的部分则是MV(Model-View). Model&View 这里有一个可

Android MVC,MVP,MVVM模式入门——重构登陆注册功能

一  MVC模式: M:model,业务逻辑 V:view,对应布局文件 C:Controllor,对应Activity 项目框架: 代码部分: layout文件(适用于MVC和MVP两个Demo): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and

Android App的设计架构:MVC,MVP,MVVM与架构经验谈

来源: Android App的设计架构:MVC,MVP,MVVM与架构经验谈 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计: 我的App需要应用这些设计架构吗? MVC,MVP等架构讲的是什么?区别是什么? 本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该注意的问题. 1.架构设计的目的 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员

[转]MVVM架构~mvc,mvp,mvvm大话开篇

MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示.作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller. 在MVC里,View是可以直接访问

MVC, MVP, MVVM比较以及区别(上)

原文:MVC, MVP, MVVM比较以及区别(上) MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式.以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解.现在一边查资料,并结合自己的理解,来谈一下对于这三种模式思想的理解,以及它们的区别.欢迎各位高手拍砖. 阅读目录: 一. MVC, MVP, MVVM诞生的需求? 二. 一段典型的耦合代码 三. MVC模式 3.1 主动MVC 3.2 被动MVC 3.3 Web应用中的MVC框架 3.4

MVC, MVP, MVVM比较以及区别

MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式.以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解.现在一边查资料,并结合自己的理解,来谈一下对于这三种模式思想的理解,以及它们的区别.欢迎各位高手拍砖. 阅读目录: 一. MVC, MVP, MVVM诞生的需求? 二. 一段典型的耦合代码 三. MVC模式 3.1 主动MVC 3.2 被动MVC 3.3 Web应用中的MVC框架 3.4 MVC总结 一,MVC, MVP, MVVM诞生的需

MVC、MVP、MVVM模式对比总结(4)用户登录例子

前言说明 在实战项目及学习中来总结一下Android端项目构架 包括MVC.MVP.MVVM,主要针对移动Android端 该篇以Android平台用户登录为例子,用代码来描述构架模式 代码主要作理解,所以可能不完整,因为去掉一些精简方便说明 目录 1.构架基础 2.横向构架模型 3.纵向构架流程 4.用户登录例子 4. 用户登录例子 公共代码 NetHelper网络通信类 使用Retrofit+RxJava技术 NetHelper { private static String baseUrl

MVC、MVP、MVVM模式对比总结

前言说明 在实战项目及学习中来总结一下Android端项目构架 包括MVC.MVP.MVVM,主要针对移动Android端 目录 1.构架基础 2.横向构架模型 3.纵向构架流程 4.代码例子 1. 构架基础 MVC构架 基础说明: 1.model模型,负责处理具体业务逻辑 2.view视图,负责显示结果,一般直接与用户交互 3.controller控制器,负责将view界面的请求转发给model处理并依次返回结果 工作流程: 1.用户在view界面进行操作 2.view界面发送请求给contr

转: GUI应用程序架构的十年变迁:MVC,MVP,MVVM,Unidirectional,Clean

十年前,Martin Fowler撰写了 GUI Architectures 一文,至今被奉为经典.本文所谈的所谓架构二字,核心即是对于对于富客户端的 代码组织/职责划分 .纵览这十年内的架构模式变迁,大概可以分为MV*与Unidirectional两大类,而Clean Architecture则是以严格的层次划分独辟蹊径.从笔者的认知来看,从MVC到MVP的变迁完成了对于View与Model的解耦合,改进了职责分配与可测试性.而从MVP到MVVM,添加了View与ViewModel之间的数据绑