2

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

我打算像下面这样分开包裹,

方法一:

  • 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))

方法二:

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

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

4

2 回答 2

2

包的目的只是为了组织。第一种方法可以让您无需过多考虑即可放置新类并轻松找到它们。

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

于 2012-12-29T08:18:58.770 回答
2

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

  1. 松耦合

  2. 紧密的凝聚力

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

想想你的包可能在另一个应用程序或另一种类型的构建中重用:手机/平板电脑、谷歌/亚马逊。或者,相反,那些对特定案例过于具体而无法重用的案例。

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

编辑:一个轶事类比。微软关于将文件排列到文件夹中的建议,AFAIK,曾经解释过他们的“面向对象”用户体验。一种方法:拥有 Word 文档、Excel 电子表格等文件夹。另一种是商业、娱乐等。同样的方法适用于任何包装。

于 2012-12-29T08:26:20.923 回答