作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的?

  首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西!

总体而来说MVC不能说是一个设计模式,因为划分维度太大,所以MVC应该属于架构模式!

  百度百科 —— MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

模型层、视图层、控制层各司其职责,相互独立,一个模型可以有多个视图,一个视图可以有多个控制器,同样如此,一个控制器也可以有多个模型。

  MVC 基本处理流程如下:

  用户与视图交互,视图接爱并反馈用户的动作;视图把用户的请求传给相应的控制器,由控制器决定调用哪个模型,然后由模型调用相应的业务逻辑对用户请求进行加工处理,如果需要返回数据,模型会把相应的数据返回给控制器,由控制器调用相应的视图,最终由视图格式化和渲染返回的数据,对于返回的数据完全可以增加用户体验效果展现给用户。

Andorid针对MVC实现得意于提出了四大核心组件,具体的详细先不讨论,今天主要想简要说一下本人对四大组件的一些感性认识:

Activity: 处理与UI相关的事件,呈现界面给用户并响应用户的请求 ( 打开一个应用,展现在你眼前的全是Activity。Activity是一个容器,她可以其承载它控件!);

Service: 后台服务,一般用于耗时操作,在后台和长时间运行(人前风平浪静,人后马不停蹄!Service是幕后工作者,虽然你看不到他干事的过程,但你能看到最终的结果。Service虽是幕后工作,但不是不要工钱,系统开销一点也不少);

 BoadcastReceiver: 接收广播事件并对事伯点击进行处理,如当收到短信时系统会发现短信到来的广播,能够处理该广播的BoadcastReceiver就会根据自己需要进进处理(广播,这个道里大家都懂吧!);

ContentProvider: 存储、处理数据并提供给外界一致的处理接口;

我写了一个关于Android四大组件的一个小故事和大家分享一下:

   我去麦当劳用餐,进门前就能看到麦当劳的logo和面店装饰。

走进店里,装潢格局,桌椅餐具,服务员全都麦当劳风格。包括前台点餐都和交流用语都是一模一样,标准的麦当劳模式。(现在我眼前的一切就是 Activity)。

点餐后,我驻足等待。但这时我拿起最新的宣传广告看来起来,期间又接了一个工作电话。过了一会,我点的东西好了。端到自己的坐位上,我拿起发了一条微博和一条朋友圈,完全不关心忙碌的后厨和食物的制做过程(这就是Service)

一会店里的广播通知顾客去前台取已经做好的汉堡包和薯条,这时我身边的一位老兄起身去了前台。(这就是BoadcastReceiver)

就餐完毕,出门时我把点餐时打印的收据随手扔进了门口的垃圾箱(那收据就是ContentProvider)!

  • 本文固定链接: http://www.ttsofts.com/archives/198
  • 转载请注明: ttsofts 2015年11月15日 于 代码博客 发表

转载于:https://www.cnblogs.com/ttsofts/p/4865931.html

Android 四大组件 与 MVC 架构模式相关推荐

  1. Android 架构之 MVC 架构模式

    前言 由于 MVP.MVVM.组件化架构的兴起,MVC 架构在 android 中的应用变得越来越少,但 MVC 是基础,理解好 MVC 才能更好的理解 MVP,MVVM,因为后两种都是基于 MVC ...

  2. Android四大组件和启动模式(面试总结)

    一.Android四大组件详解 Android四大组件分别为Activity.Service.Content Provider.Broadcast Receiver. 1.Activity (1)一个 ...

  3. MVC架构模式(2)

    简介: MVC最初是在Smaltalk_80中被用来构建用户界面的.M代表模型Model,V代表视图View,C代表控制器Controller. Model模型层,可以简单理解就是数据层,用于提供数据 ...

  4. Android四大组件之BroadCastReceiver

    1. 基本概念 在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver 是对发送出来的Broadcast 进行过滤接受并响应的一类 ...

  5. Android——四大组件、六大布局、五大存储

    一.android四大组件 (一)android四大组件详解 Android四大组件分别为activity.service.content provider.broadcast receiver. 1 ...

  6. 重温Android四大组件(一)—Activity的生命周期

    前言 四大组件对于Android开发者是老生常谈的知识了,相信每个Android开发者对四大组件都已经很熟悉了.但是四大组件作为Android应用的基础,作为开发者不仅要熟悉而且要烂熟于心. 这里以& ...

  7. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解

    本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...

  8. spring mvc返回页面显示空白_Spring 框架基础(06):Mvc架构模式简介,执行流程详解...

    一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不 ...

  9. Spring 框架基础(06):Mvc架构模式简介,执行流程详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集 ...

最新文章

  1. 深度学习Deep learning:四十九(RNN-RBM简单理解)
  2. 一道没人搞得定的趣味Shell编程游戏题!,看看你会不会?
  3. 预编译对象解决SQL注入问题
  4. php 使用fseek指针读取大文件日志
  5. JavaScript学习(三十八)—面向过程与面向对象
  6. matlab中找不到指定的模块,Matlab装好后启动提示找不到指定模块如何解决?很急...
  7. 影院售票系统 php源码,影院售票系统
  8. MATLAB 中gcf、gca 以及gco三者的解析
  9. 障碍物参考线交通规则融合器:Frame类
  10. JavaScript立即执行函数
  11. 阿尔茨海默病最新研究进展(2021年)
  12. Tensorflow C++接口部署python深度学习训练模型
  13. 史上最全Android文件管理器技术方案细节
  14. 音视频卡顿问题的原因及解决方案
  15. 基于直方图的图像增强算法(HE、CLAHE)之(二)
  16. nagios mysql 并发_nagios监控mysql的connections和processlist
  17. CAPS发布了完全支持OpenACC的编译器了!
  18. 恩智浦 i.MX8X BSP 包文件目录结构
  19. 神经网络一般架构(BP)
  20. 苹果cms微信对接php,苹果cmsV10微信公众号对接插件安装教程

热门文章

  1. kylin与superset集成实现数据可视化
  2. mongodb 去重查询 Java,mongodb篇二:mongodb克隆远程数据库,去重查询的命令及对应java语句...
  3. mysql 查看trige_mysql查看所有存储过程,函数,视图,触发器,表
  4. python 灰度改二值,Python Image 对验证码进行灰度和二值法处理 去掉边框
  5. python小老鼠编程_成都python函数学习教程,Python编写课程
  6. a4988 脉宽要求_A4982/A4984/A4985和A4988设备主要针对办公室自动化市场
  7. php 中断输出,PHP捕捉异常中断的方法
  8. css书写规范、行高
  9. elasticsearch基本查询二(英文分词)term和terms查询
  10. 搭建推荐系统所需要的材料