android -Framwork IOC及Application MVC
来源:互联网 发布:java中间件 是什么 编辑:程序博客网 时间:2024/06/10 03:30
代码分层、分离,封装
> 精通applicationframework,你就可以真正的理解android的设计和运行机制,也就更能够驾驭整个应用层的开发。
android的官方建议应用程序的开发采用mvc模式。何谓mvc?
mvc是model,view,controller的缩写,Android中界面部分也采用了当前比较流行的MVC框架,在Android中:
模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。
视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。
控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m哦得了处理。
android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:
1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入,当然,如何你对android了解的比较的多了话,就一定可以想到在android中也可以使用javascript+html等的方式作为view层,当然这里需要进行java和javascript之间的通信,幸运的是,android提供了它们之间非常方便的通信实现。
2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。
3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。
android框架魅力的源泉在于ioc,在开发android的过程中你会时刻感受到ioc带来的巨大方便,就拿activity来说,下面的函数是框架调用自动调用的:
protected void onCreate(bundlesavedinstancestate);
不是程序编写者主动去调用,反而是用户写的代码被框架调用,这也就反转了!
在Android SDK中的数据绑定,也都是采用了与MVC框架类似的方法来显示数据。在控制层上将数据按照视图模型的要求(也就是Android SDK中的Adapter)封装就可以直接在视图模型上显示了,从而实现了数据绑定。比如显示Cursor中所有数据的ListActivity,其视图层就是一个ListView,将数据封装为ListAdapter,并传递给ListView,数据就在ListView中现实。
》MVC的优点:
(1)耦合性低。所谓耦合性就是模块代码之间的关联程度。利用MVC框架使得View(视图)层和Model(模型)层可以很好的分离,这样就达到了解耦的目的,所以耦合性低,减少模块代码之间的相互影响。
(2)可扩展性好。由于耦合性低,添加需求,扩展代码就可以减少修改之前的代码,降低bug的出现率。
(3)模块职责划分明确。主要划分层M,V,C三个模块,利于代码的维护。
- android -Framwork IOC及Application MVC
- google android volley framwork
- linux/android sdcard framwork
- Android Framwork Android Servers 解析
- android-google Volley framwork(2)
- android framwork 分析之binder
- Android Framwork Develop 经验汇总
- Android framwork 之Android makefile编写
- Castle IOC in MVC
- Application--Android原理及实用系列
- Android 中Application的理解及使用
- php mvc框架-symfony/cakephp/codeIgniter/zend framwork
- Android framwork cpp调用java function
- 在android framwork里添加底层服务
- android framwork层得利用反射知识
- android-ioc
- Spring MVC整理系列(02)————Spring MVC配置解析及整合Spring IOC
- IOC 在Mvc中的使用
- 经典算法研究系列:七、深入浅出遗传算法
- javascript中的事件解析与示例
- HTC Vive的Lighthouse工作原理
- JavaSE_JavaDoc注释详解
- 40页Pacific Trails Resort案例分析
- android -Framwork IOC及Application MVC
- android usb 异步请求理解
- C语言中各种整型变量在不同字长机器上的字节数详细探讨
- JavaScript 数据类型总结
- java 实现WebService 以及不同的调用方式
- Coding中的低级问题总结【开个头先】
- 《VR入门系列教程》之18---Oculus代码剖析
- 【Unity】 旧版动画 在某一帧增添事件
- 如何同步时间ntp/rdate