重新规划项目结构

作者: looper1211 | 来源:发表于2016-05-31 23:00 被阅读127次

无论什么APP,很多开发人员都喜欢把所有的代码、类放在一个项目里,更有甚者,无论是Acitivity还是Adapter都位于一个Package,或者将Adpager内置在Activity中。这就相当于房间里既有餐桌又有马桶,床上还放着酱油瓶。


现在我们来重新规划Andorid项目的目录结构,分以下两步走:
第一步,建立AndroidLib类库,将于业务逻辑无关的逻辑转移到AndroidLib,重构后的项目结构参看下图,其中AndroidDemo为主项目,保持了对AndroidLib的引用,如何设置类库、如何引用请自行百度


项目依赖关系

AndroidLib至少应该包括五大部分,如下图所示:


AndroidLib 项目结构

这几部分的说明如下:

  • activity包中存放与业务无关的activity基类,Activity基类分两层,如下图,AndroidLib下的基类baseActivity封装的是与业务逻辑无关的公用逻辑,主项目中的AppBaseActivity基类封装的是与业务相关的公用逻辑。
基类的继承关系
  • fragment包中存放与业务无关的fragment基类
  • net包里面存放的是网络底层封装
  • cache包里面存放的是缓存数据和图片的相关处理
  • ui包里存放的是自定义控件
  • utils包中存放的是各种与业务无关的公共方法,比如对sharedPrefrence的封装。

第二步,将主项目中的类分门别类的进行划分,放置在各种包里,如下图所示


AndroidDemo 目录结构

对上图的各个包介绍如下:

  • activity:按照模块继续拆分,将不同模块的activity划分到不同的包下
  • adapter:所有的适配器放在一起
  • entity:所有的实体都放在一起
  • db:SQLLite相关逻辑都放在一起
  • ui:将自定义控件都放在这个包下面
  • utils:将所有的公用方法都放在这里
  • interfaces:真正意义上的接口,命名以I作为开头
  • listener:基于Listener的接口,命名以On作为开头

这些划分主要为了以下两个目的:

  1. 每个文件只有一个单独的类,不要嵌套类,比如在Activity中嵌套Adapter、Entity
  2. 将Activity按照模块划分后,可以迅速定位具体的某个页面每个人都只负责自己的那个包,开发边界线很清晰

俗话说“打扫干净屋子再请客”,对于项目而言,划分好组织结构也是这个道理

相关文章

  • 重新规划项目结构

    无论什么APP,很多开发人员都喜欢把所有的代码、类放在一个项目里,更有甚者,无论是Acitivity还是Adapt...

  • 第1章 重构,夜未眠

    1.1,重新规划Android项目结构 Activity:存放与业务无关的Activity基类 BaseActiv...

  • app研发录第一章笔记

    笔记提纲 1.1,重新规划 Android 项目结构 第一步:建立 AndroidLib 类库,将与业务无关的逻辑...

  • 第1章、重构、夜未眠

    1.1重新规划Android项目结构 基本上项目目录尽可能细分,容易快速查找界面。现在感觉mvp模式不错,可以采用...

  • 17.《APP研发录》笔记

    一、重构,夜未眠1.重新规划Android项目结构第一步,建立AndroidLib类库,将与业务无关的逻辑转移到A...

  • maven - 多模块项目的POM重构

    在多模块项目中,如何规划项目结构(项目,模块,pom,依赖) reference: http://www.info...

  • maven - 多模块项目的POM重构

    在多模块项目中,如何规划项目结构(项目,模块,pom,依赖) reference: http://www.info...

  • 关于X-photo APP

    结构 项目目标的总体规划——典型场景——功能列表——产品架构——需求详述 项目目标的总体规划: 内网分享,防止AP...

  • Android项目结构的规划

    背景 随着项目业务的持续发展,App功能越来越多,这无疑对客户端开发人员提出了挑战。项目大体可以划分为技术公共库,...

  • 工作复盘1

    上午把产品规划的结构图中的文字整理好,重新思考了产品目标和价值点 下午罗列了用户场景,中间穿插了项目的优化需求,集...

网友评论

    本文标题:重新规划项目结构

    本文链接:https://www.haomeiwen.com/subject/ksqhdttx.html