在哪个标准中将代码分成Android应用程序中的包

时间:2012-12-29 07:51:40

标签: android

我正在使用eclipse开发一个Android应用程序,它在一个名为com.companyname.appname的包中共有29个类。这29个类包括活动,列表片段,加载器,服务,DbHelper,Jsonparser,适配器和NetworkConnection类。

我打算将下面的包分开,

方法1:

  • com.companyname.appname.activities(包括所有活动类别的应用程序)
  • com.companyname.appname.services(包括所有服务类应用程序)
  • com.companyname.appname.loaders(包括所有加载程序类的应用程序)
  • com.companyname.appname.fragments(包括所有片段类的应用程序)
  • com.companyname.appname.database(包括所有数据库帮助程序类的应用程序)
  • com.companyname.appname.utilities(包括其他实用程序类(Jsonparser,Netwrok连接检测,SimpleCursorAdapter)的应用程序)

方法2:

  • 为每个Activity分隔每个包(它包括相关的片段,加载器,实用程序,服务等)

哪种方法有效?或者我需要有效地分离不同方法的包? 在Android代码设计中,包分离的所有最佳实践是什么?

2 个答案:

答案 0 :(得分:2)

包的目的仅限于组织。第一种方法可以让您不必过多考虑放置新类并轻松找到它们。

第二种方法有时会更难,因为有些类可以分为几个包。

答案 1 :(得分:2)

在很大程度上,这是一个品味问题。对于某些标准,与其他类型的封装一样,可以应用以下内容:

  1. 松散耦合

  2. 紧密凝聚力

  3. 换句话说,避免不相关的部分之间不必要的依赖关系,并将所属的部分组合在一起。

    将您的软件包视为可能在其他应用程序或其他类型的构建中重复使用:手机/平板电脑,Google / Amazon。或者相反,对于特定情况而言,过于特定的情况可以重复使用。

    这种或其他类型的推理将帮助您根据某些需求而不是任意选择来构建代码。

    编辑:一个轶事类比。有关将文件安排到文件夹AFAIK的建议,一旦解释了他们的“面向对象”用户体验,就会从微软那里得到。一种方法:拥有Word文档,Excel电子表格等文件夹,另外还有商业,娱乐等文件夹。同样的方法适用于任何包装。