我想知道如何为 Android 应用程序创建灵活的包结构,以便于扩展和管理。我的第一个想法是将每个应用程序组件放在单独的包中,例如:
spk.myapp.main.(主要活动中使用的所有类)
spk.myapp.processor.(处理器提供程序使用的所有类)
...等等。然而,我不喜欢的方面是,类和包命名约定可能很快就会与其他完全限定的名称不一致,例如提供者权限(在这种情况下,我宁愿将这些命名为spk.myapp.processor than spk.myapp.processor.processor正如类包路径所建议的那样)。
我已经做了一些研究,但大多数页面都解释了初始项目目录结构,而不是为更大的项目建议一个目录结构。
我的问题可能听起来很愚蠢,但我喜欢从一开始就在我的项目中保持秩序,这样进一步管理和扩展它们就不会涉及不必要的重构或清理。另外,我对Java没有太多经验,我希望从一开始就养成良好的习惯。
Android项目有没有一套好的、可靠的项目包结构和命名规范?
维基百科有有用的注释 http://en.wikipedia.org/wiki/Java_package在 Java 包上。包的有用主要有两个原因:
- 包为其包含的类型提供唯一的命名空间。
- 同一包中的类可以访问彼此的包访问成员。
第一点意味着您可以按逻辑功能对项目进行分组。活动可以驻留在活动包下,您的服务可以驻留在服务包下。
第二点非常重要,但常常被忽视。包访问允许您做一些聪明的事情。例如,您可以拥有一个“构建器”类,它可以构建和填充具有包访问属性的模型,而无需添加大量 setter 方法或使用公共属性。这可以使对象创建变得非常简单和直观,而对象在包外保持不可变。
这个原则的一个很好的例子可以在 Romain Guy 的书中找到。Shelves http://code.google.com/p/shelves/source/browse/#svn/trunk/Shelves/src/org/curiouscreature/android/shelves/provider应用程序。这书店类 http://code.google.com/p/shelves/source/browse/trunk/Shelves/src/org/curiouscreature/android/shelves/provider/BooksStore.java可以创建 Book 对象并修改其成员,而无需将这些字段暴露给其他类(在其他包中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)