欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[程序猿感悟] Android平台开发中的重构三步走

程序员文章站 2022-05-22 17:41:21
...

我们都知道,技术是优质产品的必要条件,要满足用户不断变化的需求,必须有弹性的技术实现框架;android开发平台正是提供给开发者一个清晰且有弹性 的架构,正如我们在eclipse开发环境中心建一个android开发项目时,生成的不同文件夹,如src是存放源代码的目录,res是存放资源的目 录,这就是为了单纯化界面修改模式,将界面描述部分的程序代码,抽取到程序外部的xml说明文件中。简而言之,即java+xml结构。

    这样做不仅增加了程序的可读性,更重要的是实现了界面与逻辑程序的脱离,便于我们修改与维护,当然,为了延续甚至程序这方面的性能,我们应该做好程序的重 构,重构代码即在反复的检查或者读代码的过程中,通过一些小的改变来增加代码的可读性和可维护性,罗马不是一天建成的,代码不是写一次就可以做到优化的, 所以做好量变的过程,即每天做好代码的重构,才能使代码出现质变,形成可读性的和可维护高的优化的代码,个人看来,重构有时是举手之劳,有时却包含着更加 深奥的架构设计模式,有时是我们程序的扩展,有时却是简化,但无论我们做什么,总之,程序会更加完美。

第一步:举手之劳的重构,简单却必——将字符串抽离到xml

    相信开发者都会有这样的经验,在编写程序的时候,我们会先处理xml的部分,然后编写并调试java部分代码,在调试过程中,我们也许会声明一些用于界面 显示的string变量,而在程序可以按我们的要求跑起来的时候,我们常会忘了string本来应该被抽取到res/values目录下的 strings.xml文件中,但我们恰恰忘了,于是用于显示的这个string就被“临时”的“永久”保存在我们的逻辑程序中,这显然违背了 android架构,所以,举手之劳的重构,将字符串抽离到xml中,简单却必要。其必要性也会在本文的后文中有所体现。

第二步:使用架构设计模式的重构——android平台中应用的MVC模式

    我们在android平台开发中也用到一些常用的架构设计模式,尤其是MVC模式,MVC模式指的是将程序组成分成三个主要部分,分别是存储内容的 “model(模型)”,负责显示的“view(视图)”,控制程序逻辑操作的“Controller(控制器)”,我们进行开发时应该将这三个部分分割 开来,来增加我们程序代码的可读性,进而便于维护。“controller”部分负责处理各种主要的运算工作,例如根据用户在“view”中的各种操作, 从“model”中提取数据,从而把其中的视觉元素传给“view”,将数据的修改部分修改在“model”中。

   Android平台中的java+xml模式实际上已经很像是MVC模式,然而,我们在编写java代码中,也要延续这种风格,甚至将它发扬光大,可以 想象,在同一个界面中多添加一些按钮和字段后“onCreate”这个函数会像长篇小说一样让人不忍多看一眼,我们不妨将其中的一部分抽离出来,不如就使 用MVC模式对部分代码进行封装,我们将“声明和查找组件”部分抽离出来,封装成findViews函数,声明和查找组件部分就是像这样的代 码:updateButton =(button)findViewById(R.id.update)//按id在界面中寻找updateButton这个组件,另一部分就是“为特定 界面组件添加控制流程”,如给按钮增加Listener这种事件函数等。

第三步:增加软件功能——国际化和其他

     Java中有一些支持国际化的特性,包括统一的编码,地区类Locale,并且利用类ResourceBundle将地区特征的信息从程序中分离出 来,在android的开发框架中也给我们提供了的支持多国语言的办法,正如我们第一步中做的,我们将负责显示字符串抽离到string.xml中,然后 我们可以创建同样的string.xml只是把原来的显示语言换成其他我们需要的,如中文换成英语,然后将中文(简体)的string.xml的目录换成 res/values-zh-rCN,将英文的string.xml的目录换成res/values-en,这样重新运行就可以支持多国语言我们只需在 java程序中的onCreate程序块中添加如下代码便可实现:

首先使用Resources res =getResources();获得资源对象,接着使用Configuration conf = res.getConfiguration();取得设置对象,然后使用conf.locale = Locale.SIMPLIFIED_CHINESE;将我们的语言,最后将我们的配置显示出来DisplayMetrics dm = res.getDisplayMetrics();Res.updateConfiguration(conf,dm);

当然我们也可以做成选项,然用户自己来选择。

最后,增加软件功能的努力也不仅只有国际化,还有让程序能适应不同的屏幕方向,显示方式和浏览方式等等。也有对我们的程序做减法,去掉冗余的部分。总之,考虑用户的使用,让用户获得更好的体验是我们的目标。
我只是简单介绍了一下我在android开发中使用的一些重构技巧,当然重构的方向远不止如此,还有统一的命名方法等方法,这里就不再赘述。正如开篇时提 到的,android开发平台给我们提供了非常清晰的架构,我们在开发中要利用好它使我们的代码更好读,程序更好用,这才是作为一个开发者最需要做的,每 天做一下小的改进,日久天长,我们的程序就会朝这个目标迈进,希望所有开发者都能有更好的应用。