【问题标题】:Grouping java classes in packages convention in Android在Android的包约定中对java类进行分组
【发布时间】:2015-08-20 14:04:53
【问题描述】:

目前我的 Android Studio 项目在主应用程序包中有 13 个类。我决定是时候在单独的文件夹(java 包?)中对类进行分组了,比如活动、片段、模型、实用程序等。如何按照某种约定(如果有的话)正确地做到这一点,尤其是对于 Android Studio 项目?

当我想为班级组创建新文件夹时,我应该在此处选择什么? “包裹”?创建后如何命名(遵循约定)?

【问题讨论】:

    标签: java android android-studio coding-style


    【解决方案1】:

    不知道有没有“官方”约定。

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

    然后,“root”。component_name 如果您的应用程序包含许多分离的重组件(通常不包含),它们包含自己的活动、模型等,则为“root”。

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2017-09-06
      • 2017-01-05
      • 2015-02-04
      相关资源
      最近更新 更多