[置顶] android 企业应用架构设计

<p align="left"></p><pre name="code" class="html">1.	选择合适的数据存储方式
1.    Andriod应用程序经常会使用到数据的存储在本地或者网络介质中,为了灵活存储各种数据,android中可有文件存储、SharePreference、SQLITE、网络存储等方式。但是在实际应用中哪种方式最适合你会让你做事起到事半功、一劳永逸的效果呢,同时也让你的代码更健壮和更人易懂。
1)    一般存储少量数据并且存储内容不是很多,最好数据键值在固定的一个范围内,如:用户名、密码、最后一次登录时间等。
2)    一条数据有很多项,而每一项又有好多类别时,就该使用XML文件类型方式存储,如QQ每次登录后、不管是成功与否,都会有一个好友列表,这些好友列表就是存储在本地文件中,下次进来先读取这个列表,如果网络可用再与网络列表保持同步更新。
3)    数据量比较大、且经常用到查、删、改功能时,就该使用SQLITE了,这种方式操作快捷、容易操作。
2.	关于为程序定义常量、接口、KEY值变量等。
1.    我们经常使用到HashMap、SET、Intent.putExtra(key,value)等,进行数据的封闭和读取,往往这些读写操作不只在一个地方出现,并且学学会有大量重复的代码出现,我为大家提出以下几点介意:
1)    全局变量适用表态变量,或者存储在Application中。
2)    对特定的类或方法中的KEY、使用接口定义方式,或者类定义,前者可以实现多继承灵活性强,后者适合单继承方式。
3)    对某一类别信息,传送的属性特别多时,尽量使用序列化接口或parcel接口方式进行对象传送。
3.	为本地存储数据文件建立归类文件夹。
1.    为单个用户空间建立目录
2.    为单个用户空间建立Cache、XML、PHOTO、TEMP等文件夹。
3.    为所有的用户空间建立一个公共用户文件夹。
4.    所有目录结构,应该是在程序运行起来之后,保证建立完成。
4.	灵活利用类的继承、封装、抽象等面向对象思想编程。
5.	要学会使用间接层进行数据封装.

      我们开发的应用程序,特别是应用级程序,经常会使用第三方包进行开发,如使用地图功能,我们会使用百度地图、高德地图等,这些第三方包应用开发也是在不停的更新中,会有一些接口和方法的变动,如果我们将这些包直接应用在我们的程序中而不进行任何封装,当我们开发大型系统时,可能会有好多地方使用到第三方包的接口,如果第三方包一但更新某个接口或者方法名称,直接导致我们的程序到处是问题,为了解决这样的问题,我们应该为第三方包封装一个自己的包,为我们需要用到的接口或者方法都在我们的应用程序封装一个对应的接口,这样来,只要第三方包有更新,我们也不需要从我们的程序中查寻所有变化的代码,这样一来,只要第三方包有更新,我们只要更新我们封装的代码即可。
         总结:为第三方包进行封装,虽然在初期需要做许多额外的工作,但是作为一个项目长期发展和和规范来说,这样的投入是必须的,也是值得的。借用Objective-C里面的一代经典的比喻来形容使用间接层的好处:你借了一本cherry的书,今天晚上要还,可cherry距离你有上百公里,今天晚上你的领导GALL要去拜访cherry,这样你可以让GALL帮你把书带给cherry,这样就是让GALL间接帮你把书还给了cherry,这样的比喻我想非常直接的表达出了间接层所带来的好处。希望对大家有帮助。


4.	要学会使用间接层进行数据封装.
以后每周定期保持更新此文章,希望大家多多关注我的博客,谢谢!!

5.	请不要在UI层出现太多数据处理层的NEW对象
➢	我们应该严格按照MVC三层结构来设计我们的应用程序.
➢	M:实体对象层,   负责承载我们的数据源,如果网络数据下载到本地前,无将它转接成M层对象,尽量少使用HashMap<Key,Value>来存储数据,因为这样的数据显示在界面还要进行过滤筛选,浪费大量的时间进行筛选处理.
➢	C:控制层,负责各类数据的逻辑处理,如果UI层调用态方法去网络获取用户列表,而静太方法类只负责去调用哪一个对象的哪一个方法,而对象的方法则去处理各个处理的逻辑关系,这个就是C控制层所做的事情.
➢	V:就是我们所说的界面.
➢	我想用最后一个结构图来描述各个MVC的调用过程V.getUserInfos();而这个V的getUserinfo()是V的静态方法,这个表态方法里有具体调用 哪个对象的实例.而而V.getUserInfo()所返回的数据应该以M的封封装格式返回给UI层,还有一个最好的方法就是,在表态方法传入一个 Handler给控制层,控制层处理完后可以回调修改界面.这是我理解的MVC三层结构.

最后一个一定要提醒大家的是,千万不要用表态变量存储数据,否则异常随时不断出现. 这是一张使用表态变量和未使用静态变量的后台报错统计图,从11月10号开始去除静态变量后,错误明显下降

 
  
 
  
 
  
 
  
 
 

你可能感兴趣的:([置顶] android 企业应用架构设计)