你的位置:首页 > 操作系统

[操作系统]Android 四大组件 与 MVC 架构模式


      作为一个刚从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)!