Android 的当前开发MVP已成为开发主流模式,不过MVC的模式,当前项目中还在使用,翻阅了不少博客和网站,发现每个人理解的MVC 都不同,感觉好晕,简单的总结一下

MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。(wiki)
说到MVC,不得不提三种组件的功能:

模型(Model)负责处理数据和提供数据 (eg:实体Bean,Sql,缓存数据处理…)
用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法
视图(View)展示数据视图,与用户交互的页面 (eg: xml,Activity)
控制器(Controller)处理事件作出响应,负责业务逻辑的处理,起到不同层面间的组织作用,
用于控制应用程序的流程(“事件”包括用户的行为和数据 Model 上的改变)(eg:Activity,定义的Controller实现)

优点:

  • 重用性高 (多个 View 能共享一个 Model)
  • 耦合性低(三个模块保持相对独立)
  • 灵活性和可配置性(Controller 可以用来连接不同的 Model 和 View 去完成用户的需求,根据用户的需求选择适当的 Model 进行处理,然后选择适当的的 View 将处理结果显示给用户)
  • 模块开发

标准MVC 组件类型的关系和功能:

MVC组件之间的典型合作:

在Android中,按照MVC三层来说
通常把Activity 当作Controller层,xml 当作View层,Activity 需要显示视图,这样View 和Controller并不能完全分离,也带来了Activity繁重的问题,Activity参与了大量的逻辑处理和视图交互,
MVC在Android 中表现的很尴尬,不明确

上图所示:Model 和View 之间用虚线来表示有关联,个人理解是:Model 数据发生改变,需要事件通过并且在Controller里面来更新View(也可以通过观察者模式来实现)。
多想了一步,如果把Activity当作View层,则需要建立Controller层,在Controller 层持有Model层的引用处理逻辑,在Model层处 理数据,再通过Controller 层回调给View层,参考Android基础——框架模式MVC在安卓中的实践

参考博客:
Android MVP Pattern
Android应用程序MVC框架实例分析
完全解析Android项目架构(1) - MVC
Android 设计模式之MVC,从一个实例中来理解MVC

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. android 解析并显示dicom文件的数据和图像
  3. Android报表解决方案 使用开源组件iChartjs(二)
  4. Unity3D 游戏引擎之游戏场景的切换与持久化简单数据的储存(十四)
  5. 刷机总结(阿里云os-->android4.2.2)注明:本文不是教程
  6. Android中常用的几种设计模式及在源码中的应用
  7. Android(安卓)Canvas练习(7)绘制欧冠八强防守&控制率数据对比图
  8. Android内、外存储 易混淆点剖析【/mnt/sdcard、/storage/sdcard
  9. SQLite轻量级数据库的注意事项

随机推荐

  1. android 独立按键和菜单键 打开menu
  2. Android中的设计模式——DataSetObservab
  3. Android TabHost实现新浪微博菜单界面
  4. Android 之 MeidaRedoreder实现音频录制
  5. 数据库判断是否为某一个值时sql
  6. android 布局之滑动探究 scrollTo 和 scr
  7. Android在web view下点击返回键直接退出
  8. Android(安卓)API 23中废弃了HttpClient
  9. 【Android】使用handler发送消息02
  10. 关于 Appium Android 真机测试