`
阅读更多
http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf 写道
在Android应用程序中,我们不能够非常清楚地区分MVC结构中的视图部分和控制器部分。Android框架期望开发者们将Activity基础类作为UI处理,这也就意味着一个Activity需要负责视图与控制器两个部分的任务。

利用观察者模式将Model进行绑定处理。
 
Android近期学习总结——开发笔记 写道
Android采用了典型的MVC结构。其表现如下:

View既可以通过xml(layout目录下)生成,也可以通过硬编码的方式直接通过代码生成。对于xml中的View资源,可以在代码中通过getViewById()的方法获得。

Model既可以通过xml(values目录下)生成,也可以硬编码的方式直接在代码中指定。View和Model通过Adapter来进行连接。典型的Adapter包括ArrayAdapter(可以Sort()操作)、CusorAdapter(从Cusor中查询到数据源),ListAdapter、SimpleAdapter(最常用)、SpinnerAdapter(它是一个接口,设置Spinner应用SimpleAdapter的setDropDownResource方法)。
 
谈对android开发的认识 写道
Android应用开发一般来说由四大块构成 activity, intent, provider, broadcastreciver.

从这种结构上来看,android系统是提供了从显示层到数据层到消息机制的一整套的应用开发方案,而且是一种比较先进的解决方案。

从写android代码的过程中,android项目整体是一种典型的MVC结构,非常类似于主要用于WEB开发的J2EE架构。

xml布局文件是view相当于JSP页面; activity和intent起到了controller的作用; provider对数据层做了良好的封装,而且provider把数据管理的范畴从数据库泛化到了数据的概念,不光管理数据记录,只要是数据文件(图片、视频、声音文件、所有其他的一切的file)都纳入管理,且提供了数据共享的机制,这是比较出彩的地方; broadcastreceiver提供了一种良好的消息机制,使得一个应用不再是一个信息孤岛,而是和其他的应用、服务等构成了信息网络,从而极大的丰富了应用的开发空间,给了应用开发者极大的想象创造的可能。

 

在看了上述讨论后,我受益匪浅。按照以前开发RoR的经验,总觉得如果仅仅将xml布局看作View层未免太单薄,而且负责渲染与事件绑定的工作也全部落到了Activity的头上,这看上去不太合理。不过另一方面说,这看上去不合理的原因是自己见识的太少以及教条主义的影响。

 

那么究竟该如何划分这几层结构呢?我觉得可以换个思路出发,我们究竟该如何合理地组织一个Android应用程序呢?我们不必教条地、具有成见地将原先系统划分结构带入到这样一个新的框架结构中,而是需要在这个特定结构中发挥其框架的效果:

  1. xml布局负责将界面布局做好,并且尽量做到合理分割与减少层次
  2. Activity做好控件事件绑定与业务流程控制
  3. Intent做好Activity间的session传递管理
  4. 自己创建Model(可以通过Observer模式进行绑定处理、并且包装好各种provider)将处理数据的工作做好。不建议简单地将各个数据字段散乱地存放在Activity周围,而是借助数据Bean的思路存放在Model下面,这样在Model数据项变得庞大后难于管理与重构,而且这多为非面对对象的设计方案。
  5. Adapter是数据与呈现的粘合剂

以上是个人在做了个Android的一个小应用后的反思与看法,整体上层次是非常低的。在这次开发中,我看到了自己在做客户端软件方面的一些问题,先分享与大家,希望能够共勉:

  1. 上手新框架时,成见较多,借助以前的思路机械搭建应用。这样没有合理发挥Android框架的优势,做了很多无用功。
  2. 整个知识网络的整合上面有欠缺,在做RoR时能够良好地利用Bean做数据传递与统一化工作。而在客户端程序时,将数据字段散乱的放在了Activity中。产生这个问题一方面来源于自己的懒惰,因为刚刚开始处理时字段就一个,所以就直接放上去了;到后来数据项激增,但是思路却没有变化。
  3. Observer模式是个不错的方案,在应用开发中却没有应用。我觉得这也是在做RoR时的一些问题,和ASP.net不同(事件驱动,容易考虑到观察者模式),RoR多为URL传递后行为触发,各种行为被自然放在了control中。而在Android应用中,错误地将Activity简单地当作了Control,将业务控制逻辑放在了里面最后忘却了观察者模式。
  4. 测试->开发->重构,的模式可以进一步上升一个层次,对整个流程再重构,这样不至于陷入思维陷阱。
2
0
分享到:
评论
1 楼 yangjiantong 2011-09-08  
请教下楼主,为何说model是values中的xml呢?这点不太明白。。。

相关推荐

    AndroidMvc, Android MVC/MVP/MVVM 框架.zip

    AndroidMvc, Android MVC/MVP/MVVM 框架 AndroidMvc框架 特性易于实现 MVC/MVP/MVVM Pattern 用于Android开发增强的Android生命周期- 比如 视图需要刷新时,但不需要旋转,onResume() 不足以区分两个场景。

    Android mvc、mvp、mvvm示例

    在Android应用开发中,模型-视图-控制器(MVC)、模型-视图- presenter(MVP)和模型-视图-ViewModel(MVVM)是常见的设计模式,用于组织代码结构,提高可维护性和可测试性。让我们逐一深入探讨这三种架构模式。 ##...

    android mvc登录案例

    在`mvcdemo`这个压缩包中,我们可能找到以下文件结构和组件: 1. `LoginModel.java`:包含模型类,负责处理登录相关的业务逻辑。 2. `LoginView.java`或`activity_login.xml`/`fragment_login.xml`:视图组件,可能...

    android MVC开发框架

    总之,Android MVC开发框架提供了一种组织代码的结构,有助于创建模块化和可维护的应用程序。虽然有其局限性,但在理解基础架构和设计模式方面,它是学习Android开发的一个良好起点。通过分析和实践MVCTEST项目,...

    android mvc demo(模拟登录)

    **Android MVC 模式在模拟登录中的应用** 在Android开发中,Model-View-Controller(MVC)是一种常见的设计模式,用于分离应用程序的业务逻辑、数据处理和用户界面。在这个"android mvc demo(模拟登录)"中,我们将...

    android mvc demo

    在Android开发中,Model-View-Controller(MVC)是一种常用的设计模式,它将应用程序的逻辑分为三个主要组件,以实现更好的代码组织和模块化。在这个"android mvc demo"中,开发者创建了一个实例,展示了如何在...

    android MVC框架

    在Android开发中,MVC(Model-View-Controller)是一种常用的设计模式,它将应用程序的逻辑分为三个主要部分,以实现更好的代码组织和模块化。本文将深入探讨Android MVC框架的原理、应用以及如何在实际项目中有效地...

    android使用mvc小例子

    在Android应用开发中,Model-View-Controller(MVC)是一种常见的设计模式,它将应用程序的逻辑分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这个"android使用mvc小例子"旨在帮助初学者...

    Android mvc详解

    ### Android MVC 模式详解 #### 一、MVC 概念及原理 MVC(Model-View-Controller)模式是一种广泛应用于软件工程中的设计模式,尤其在Web开发与移动应用开发领域备受青睐。Android平台上的应用开发同样可以采用MVC...

    android mvc框架demo

    之前同事外派回来,给我们分享了他们的工作经验,其中MVC比较吸引任。M主要是数据的存储,V主要是activity,用来做页面的显示和事件的处理,C是具体的逻辑类,复杂的逻辑和对model的管理都由它来做,和观察者结合...

    Android MVC框架+网络封装

    自己多年经验总结的MVC框架,使用了现在比较流行的butterknife、logger等依赖,使用了RecyclerView进行了一些列表展示,刷新用的SwipeRefreshView进行了上拉、下拉刷新、分页加载,简单操作,代码简洁 自己用的一款...

    android开发MVC框架demo

    在Android应用开发中,MVC(Model-View-Controller)是一种常见的设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。本项目是针对Android平台的一个MVC框架的示例,旨在...

    Android MVC框架

    在Android中,视图通常是使用XML文件定义的,这些XML文件描述了界面的结构和外观。视图的主要职责是接收用户的输入事件(如点击、滑动等),并将其传递给控制器进行处理。同时,视图还负责显示由模型提供的数据。 *...

    android MVC模式

    MVC模式在Android开发中起到了组织代码结构、提高代码可读性和可维护性的作用。虽然在Android原生框架下,MVC的Controller角色可能会过于复杂,但通过引入其他设计模式,我们可以更好地利用MVC理念,构建出高效、...

    android mvc、mvp、mvvm项目源码

    在提供的项目源码中,可以对比看到 MVC 架构下代码的组织结构和职责分配。 **MVP(Model-View-Presenter)**: MVP是对MVC的一种改进,旨在解决Controller过重的问题。Presenter作为Controller的替代,承担了业务...

    Android-典型的MVC项目结构Demo及库

    本项目"Android-典型的MVC项目结构Demo及库"是针对这一模式的一个实例演示,旨在帮助开发者快速理解和实践MVC架构,尤其适合小型项目的开发。 **模型(Model)** 在Android MVC中,模型层主要负责数据的处理和业务...

    android MVC开发

    在Android应用开发中,MVC(Model-View-Controller)是一种常见的架构模式,它将应用程序的逻辑分为三个主要部分,以实现代码的清晰结构和更好的可维护性。下面我们将深入探讨MVC模式在Android开发中的应用及其核心...

    简单的android mvc 框架

    Android MVC框架是软件开发中的一种设计模式,它将应用程序分为三个主要组件:Model(模型)、View(视图)和Controller(控制器)。这个框架在Android应用开发中被广泛使用,尤其适用于构建可维护性和可扩展性高的...

    MVC结构剖析图(非常详细适合新手)

    MVC全名是Model View Controller,是模型...而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

Global site tag (gtag.js) - Google Analytics