在Android中的包约定中对java类进行分组

时间:2015-08-20 14:04:53

标签: java android android-studio coding-style

目前我在主应用程序包中有13个类的Android Studio项目。我决定是时候将类分组在单独的文件夹(java包?)中,比如活动,片段,模型,实用程序等。如何正确地遵循某种约定(如果有的话),特别是对于Android工作室项目?

当我想为班组创建新文件夹时,我应该在这里选择什么? "封装&#34 ;?创建后如何命名(遵循约定)?

enter image description here

1 个答案:

答案 0 :(得分:1)

不知道是否有一些“官方”惯例。

我目前使用的包装结构:
单个应用程序类的“root”(通常等于appId)包。 如果应用程序包含一个活动,一个服务,那么它们也可以放在这里。

然后,“root”。 component_name 包,如果你的应用程序包含许多分离的重组件(通常不包含),它们拥有自己的活动,模型等。< / p>

“root”包或每个组件的包包含:

  • activity用于活动和片段
  • app。此外,有时候,我创建了app包,它可以包含活动,片段,服务和其他Android应用程序组件的基类。
  • view用于视图和适配器
  • model包含业务逻辑。包含接口,实体,DTO。
  • model.impl:我不时使用它。它包含模型实现(包可见性)
  • helperutil
    • helper包含特定于域的内容。作为旁注:通常我会尝试通过将辅助逻辑封装到域数据类型中来避免使用它们。
    • util通常会转到“root”包。 app

上次我开始使用asyncmodel.async个包来描述异步计算,后台作业等等。

我对这种结构并不总是满意。所以, 我期待如何将类分组到android api中。 我也喜欢发现我最喜欢的库和框架的结构。

示例:

org.android.exampleapp.app

          BaseActivity.class   // provide access to MyService
          BaseFragment.class  

org.android.exampleapp.activity

          LaunherActivity.class  // extend BaseActivity and BaseFragment
          MainActivity.class
          MyDetailsFragment.class
          MyListFragment.class

org.android.exampleapp.model

          SuperItem.class
          MyService.class

org.android.exampleapp.model.impl

          MyServiceOfflineImpl.class
          MyServiceOnlineImpl.class

org.android.exampleapp.async

          GetSuperItemsTask.class