为什么我们要用到开发模式,如果单单说写一些Demo或者一个工程只有几个Java文件,其实也没有别要去想太多的架构问题,直接撸代码就完事了。但是如果一个项目代码量比较多、业务比较繁琐、扩展性高。那么我们前期的规划是必不可少的,更加需要我们关注架构层面。

接下来我们看下Android现有的几大架构

一、MVC————Model-View-Controller

M:Model(模型)  M层是用来处理数据以及业务逻辑关系

V:View(视图)   V 层是用来数据的显示

C:Controller(控制器) C 层是把M和V之间的桥梁

在Android开发中,Activity本身并不是一个标准的MVC模式中的Controller,它的首要职责是加载应用的布局和初始化用户界面,并接受并处理来自用户的操作请求,进而作出响应,这样就会难免出现在Activity去处理数据。在数据处理和业务逻辑越来越多的情况下,View也就是Activity或Fragment就会很臃肿,代码量蹭蹭的往上涨,不太利于后期的开发和维护。这就会我们引进MVP。

二、MVP  ————  Model-View-Presenter

M:提供数据

V:显示数据

P:处理逻辑

其实MVP就是MVC延伸出来,同样是划分三层,不过MVP的Presenter让Activity更加专注于处理页面显示。这样做的好处就是:让Activity只做UI的处理,数据处理和业务逻辑全丢给Presenter来完成。但是有个缺点就是我们要写很多的接口类,增加代码量。

三、MVVM ———— Model-View-ViewModel

M:model  实体模型

V:view UI交互层(Activity、fragment)

VM:ViewModel  负责View与Model之间的交互,业务逻辑处理

首先MVVM是一种模式,而实现这种模式的就要用到Data Binding(关于这个可以在网上搜索学习,这里不多介绍)。然后View和ViewModel是可以通过Data Binding来实现视图和数据的双向绑定,从而达到MVVM这样的效果。

从我个人来说,我更倾向于使用MVP模式来作为开发,可能我是

打开App,阅读手记

android 三大框架是什么,聊聊Android中的三大框架相关推荐

  1. php开发用框架优缺点,剖析PHP开发中主流PHP框架的优缺点

    如今,每个企业乃至最大的商业巨头都希望拥有一个功能齐全的网站以便有效的提高特定业务的品牌价值.PHP 是一种开源的服务器端脚本语言,已经成为定制网站构建解决方案最合适和最有效的语言.在此,小编挑选出了 ...

  2. 框架模式 MVC 在Android中的使用

    算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学), ...

  3. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编框架 | PyCharm 中导入 Capstone 反汇编框架 )

    文章目录 一.Capstone 反汇编框架 二.PyCharm 中导入 Capstone 反汇编框架 一.Capstone 反汇编框架 Android 的 APK 安装文件中 , 可能存在若干 so ...

  4. Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)

    上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [View ...

  5. android中使用tmf框架插件化开发的问题

    android中使用tmf框架插件化开发的问题 最近项目开发使用的是tmf框架,其中大多数都是通过源生和H5交互的方式来实现的,大体实现和别的三方框架是一样的,需要按照tmf的官方文档引入一些lib和 ...

  6. 每天学习一个Android中的常用框架——0.目录

    文章目录 1.前言 2.环境 3.目录 3.1 持久化 3.1.1 Litepal 3.1.2 GreenDao 3.1.3 Realm 3.1.4 DBFlow 3.2 网络传输 3.2.1 OkH ...

  7. Android中的hook框架:epic简介

    epic是Android中的一个开源的hook框架,目前最新版本是:0.11.2,项目地址:https://github.com/tiann/epic. epic框架的优点有: 1.可以hook普通方 ...

  8. android中的 listview控件,聊聊Android中的ListView控件

    软硬件环境 Macbook Pro MGX 72 Android Studio 1.3.2 坚果手机 前言 ListView是Android系统中使用非常广泛的一种控件,几乎所有的App都会用到它.它 ...

  9. Android仿人人客户端(v5.7.1)——项目框架新做的调整描述(项目中基类java源码)...

    转载请标明出处:http://blog.csdn.net/android_ls/article/details/8909068 声明:没看过仿人人android客户端系列博文,前面的相关文章的朋友,请 ...

最新文章

  1. R语言数据结构之列表
  2. java_环境安装(window10)
  3. python生成激活码
  4. 一个细节翔实、可供参考的支付体系架构演进实例--转
  5. python二分法查找算法_python之路-二分法查找
  6. 对 Linux 新手非常有用的 20 个命令
  7. 二十四种设计模式:备忘录模式(Memento Pattern)
  8. CentOS HarBor安装与配置
  9. kaggle (02) - 房价预测案例(进阶版)
  10. [分享]天轰穿VS2005视频教程
  11. Python——如何屏蔽函数内部的print输出
  12. 论文笔记_S2D.48_2017-IEEE RAL_单视图和多视图深度融合
  13. paip.提升程序稳定性---最佳实践
  14. python爬虫刷网课答题_python实践:利用爬虫刷网课
  15. SONY UP-D898MD 或 UP-X898MD驱动在WIN10 64下的安装
  16. python 100以内3的倍数_在python中确定3或5的倍数
  17. Linux增加一块scsi硬盘,Linux下添加第二块scsi硬盘
  18. EDA技术(VHDL)——0~9999的计数器电路的设计
  19. 原型模型| 软件工程
  20. 倍福ADS通讯(一)——ADS通讯简介

热门文章

  1. CSS全局样式,震撼来袭免费下载!
  2. 12. FolderDialog、FileDialog、FolderListModel的简单使用
  3. 全国计算机四级之网络工程师知识点(四)
  4. 在产品中,我们常说的A端/B端/C端是什么?
  5. MySql 下载安装
  6. Nature综述:未培养微生物的新兴培养技术
  7. cocos creator |《合成大西瓜》源码 解读
  8. named-checkzone命令--Linux命令应用大词典729个命令解读
  9. leo-editor 关于 flutter 企业级路由 fluro 官方例子文学化编程分析
  10. Visitor パターン