概观
Android应用应该总是使用一个清晰的文件结构来被整齐的组织起来,这样会使得你的代码更容易阅读。
这有几种对组织你的应用的包结构的最佳实践。
通过类别来组织包
去做这的方式是通过它们的类别将同组的事物放在一起,每个组件放到相应的包中:
com.example.myapp.activities
- 包含所有的活动 com.example.myapp.adapters
-
包含所有的自定义适配器 com.example.myapp.models
- 包含所有我们数据的模型com.example.myapp.fragments
- 包含所有的碎片com.example.myapp.helpers
- 包含所有的帮助类 (支持本APP的自定义代码).com.example.myapp.interfaces
- 包含所有的接口
保持这些文件夹在每个应用意味着代码是被逻辑的组织起来的,浏览这些代码将会很愉快。
通过应用的特点来组织包
按特征的包使用包来反应特征集,考虑下面的包结构:
com.example.myapp.service.*
- 是一个与所有后台相关的服务的包/类的子包com.example.myapp.ui.*
- 是一个与所有界面相关的包/类的子包com.example.myapp.ui.mainscreen
- 包含一些与应用主屏幕相关的类com.example.myapp.ui.detailsscreen
- 包含一些与应用的项目详细屏幕的类(译者注:这里我还是要解释一下,这个地方是对某个地方的详细显示,比如我们常看的新闻,mainscreen上只有个标题,点进来detailsscreen就显示详细的新闻信息)
这种特征允许你将 DetailsActivity
, DetailsFragment
, DetailsListAdapter
, DetailsItemModel
放到同一个包中,
当你使用"项目详情"特征,这会提供一个舒适的导航。
DetailsListAdapter
和 DetailsItemModel
类和/或
它们的属性能被做成私有包, 从而不会裸露在这个包的外部. 在这个包里面你能直接访问它们的属性而不用生成成吨的"setter"方法的模版。
这能使得对象的创建非常的简单直观,而在这个包外面的对象仍可保持不变。
结论:
这时由你来决定上述方法中哪个最适合你的项目。
然而,对一般的Java程序来说,通过特点来封装应用程序被认为是最好的,最有意义的。
参考:
这篇文章主要是将关于包名的问题,很有意义,一般的开发中,我比较常用的是第一种分类法,那样造成了一个功能模块的相关的类在好多个包里面,有的时候为了维护还花费了好大力气去找到各个类,下面按照功能来分,确实是个很好的选择。