谈谈android中mvc模式的应用?,MVC模式在Android开发上的应用研究.doc

MVC模式在Android开发上的应用研究

摘 要:根据Android应用开发语言Java的特点以及MVC模式的思想,提出一种基于注解的MVC模式,可用于Android应用的快速开发中,并根据Android跨进程应用的特点,提出一种解决方案,可使MVC模式用于跨进程应用中。

关键词:Android;Java;MVC;注解;AIDL

DOI:10.16640/j.cnki.37-1222/t.2017.03.118

随着搭载Android系统的智能设备的普及,对Android应用的需求也越来越大,需要一种好的设计模式提高开发的效率。MVC(模型-视图-控制器)设计模式将数据和表现进行分离,既可以使数据以不同的形式表现,又可以方便的更换数据来源从而提高开发效率。由于Android系统以Java语言做为上层开发语言,本文基于MVC设计模式思想以及Java语言的特点,提出了一种基于注解的MVC开发框架,可大大简化应用程序设计。又根据Android应用程序的特点,提出了一种针对跨进程应用使用该框架的方案,提高了框架的适用性。

1 MVC模式简介

MVC设计模式是一种“分治”的思想,它将模型和视图分离,从而使同一组数据可以使用不同的表现形式。MVC由三部分组成:模型(Model),视图(View)及控制器。模型即数据来源,负责数据的生成及相关逻辑处理,视图是模型的外在表现,一个模型可以对应一个或多个视图。视图是应用程序与外界输入的接口。控制器是模型和视图联系的纽带,一方面将外界输入交给模型处理,另一方面又将模型处理好的数据交给视图来表现,使模型和视图同步更新。

在MVC设计模式中,三个层次作用清晰,各司其职,互不干涉,某一层的需求发生变化,只需要修改相应层而不会影响到其他层。同时分层设计也利于组件的重用和功能的扩展,可以很方便的用不同的视?D来显示数据,从而使系统能轻松支持新的逻辑模块和视图显示。因此,在开发中使用MVC设计模式具有显著的优势。

2 MVC模式的实现

使用观察者模式来实现MVC框架。 实现步骤:

(1)定义抽象类Subjecter,持有观察者类的对象。(2)定义抽象类IModel继承Subjecter,作为模型的基类。(3)定义抽象类IView继承Subjecter,作为视图的基类。(4)定义抽象类IController,作为控制器,作为模型和视图之间的纽带,控制器类同时持有模型和视图对象。(5)定义观察者Observer,观察者持有控制器对象。通过以上定义可以看到,模型和视图持有观察者对象,观察者又持有控制器对象,而在控制器又同时持有模型和视图对象。这样一旦模型的数据发生变化就可以通知观察者,观察者使用控制器来通知视图进行更新。而观察者中的控制器和控制器中的视图都是可以方便的更换,从而通过不同的控制器就实现了模型和视图的分离,也就是MVC模式。

3 使用注解进行优化

建立了MVC模式之后,通过继承IModel,IView,IController就可以使用MVC模式来进行开发了,但是在模型里面每多一种变化,相应的在控制器和视图里面就要增加代码来通知视图和响应这种变化,从编程的角度来看这些响应过程其实就是调用视图类相应的方法,在传统的编程中需要先在视图中定义方法,然后在控制器中调用。所以简化的关键是实现动态调用方法。JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。由于Java反射机制是基于方法名或变量名的字符串来实现的。可以使用字符串存储视图里面的方法名,然后控制器读取字符串也就是方法名再通过反射来调用相应的方法。注解(Annotation),也叫元数据。可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。注解可以通过反射来获取。这样就可以把模型的变化定义为一个字符串类型的动作,给视图的相应方法加上以这个动作为值的注解,然后在控制器里面读取相应的注解,从而使模型的变化与视图的响应方法自动的对应起来,这样就减少了代码量,更易于使用。

基于上面的思路,首先定义注解:

@Target({ ElementType.METHOD })

@Retention(RetentionPolicy.RUNTIME)

public @interface MVCAction {

String value() default "";

}

注解设定为可以使用在方法上,并且在运行时存在。

接下来的关键就是解析注解,在IView里面编写一个注解解析器,并将解析到的动作名与被该动作所注解的方法的名字一一对应保存在列表中,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值