我们都知道,技术是优质产品的必要条件,要满足用户不断变化的需求,必须有弹性的技术实现框架;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开发平台给我们提供了非常清晰的架构,我们在开发中要利用好它使我们的代码更好读,程序更好用,这才是作为一个开发者最需要做的,每天做一下小的改进,日久天长,我们的程序就会朝这个目标迈进,希望所有开发者都能有更好的应用。

更多相关文章

  1. 代码混淆—android被反编译的两种解决方案
  2. [android盈利模式探索]我也分享一下我Android的收入数据
  3. [Android]APK程序卸载提示
  4. Android View 高级框架二 Builder模式打造通用对话框
  5. [Android分享] Android 得到已安装的应用程序信息
  6. 程序员滴无奈生活记(二)

随机推荐

  1. 标志FLAG_ACTIVITY_NEW_TASK的解释
  2. Kotlin简单开发-RecyclerView
  3. Android(安卓)BaseFragment基类
  4. ANDROID -- Bluetooth
  5. Android(安卓)封装http请求的工具类
  6. Android(安卓)App 调用自带浏览器
  7. button,android:onClick=""
  8. Android:Error: WebView.destroy() called
  9. Android(安卓)AsyncTask 解析
  10. 有用代码片段