android项目中包的正确使用

Posted

技术标签:

【中文标题】android项目中包的正确使用【英文标题】:Right use of packages in android project 【发布时间】:2016-05-12 08:39:18 【问题描述】:

我正在处理一个包含很多类的项目,我想在包中正确地构造它们。我担心一件事:

活动生命周期被修改为protected,并且有一个java规则:

子类只有通过继承才能看到受保护的成员

我也在使用片段,所以我的问题是:

    我可以在不同的包中构建活动和片段吗 没有不必要的“副作用”? 如果是这样,定义包结构的正确方法是什么 - 例如,是否将“模型数据”放入不同的包中是正确的方法,以及来自服务器的数据(例如 Parse.com)呢?

【问题讨论】:

是的,你可以。 :) 使用包管理类没有明显的副作用。 @kopikaokao 您的回答是基于个人经验吗?你能回答最后一部分吗? @Kagemusha 感谢您的编辑 :) 这是基于我个人的经验,java包的主要用途是防止命名冲突,控制访问,使类、接口、枚举和注释的搜索/定位和使用更容易,等等,正如link 中所引用的那样。至于最后一个问题,没有有限的答案。这取决于您的喜好。 @kopikaokao 谢谢 :) 【参考方案1】:

Java 中的包是一种封装一组类、接口和子包的机制。 Java 的许多实现使用分层文件系统来管理源文件和类文件。将类文件组织成包很容易。

    我可以在不同的包中构建活动和片段吗 没有不必要的“副作用”?

    是的,你可以。它没有任何副作用。相反,它将以有条理的方式进行,便于您搜索和维护。

    如果是这样,定义包结构的正确方法是什么 - 对于 示例是将“模型数据”放在不同包中的正确方法 与否,以及来自服务器的数据怎么样,例如 Parse.com?

    是的,你应该为 MODEL 、 CONTROLLER 、 VIEWS 等制作不同的包

我们需要包因为

    抽象 保护 方便 命名空间控制 可重用性

查看this 了解更多说明。

【讨论】:

以上是关于android项目中包的正确使用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android 库 gradle 项目中包含依赖项?

在 Android 项目中包含 MPChartLib [重复]

Android - 在我自己的项目中包含原生 StageFright 功能

如何在android studio项目中包含共享库?

Android Gradle 项目中包括 Apache HttpComponents 的问题

Android项目中包名的改动