项目大、杂、乱怎么办?重构!
不管你的项目现在是什么样子,模块化之后会是这样的结构。
图1
如图所示,
1. 根据业务规划,选择了合适的3rd Library
2. 封装3rd Library,形成适合业务使用的Base Library
3. 经过Framework Layout的处理,这里可以是router分发,common业务二次封装等
4. 按module独立,形成高内聚低耦合的结构
重构两步走
一、提取公共部分
1. activity 保存业务无关Activity基类,封装业务无关的公用逻辑。Activity会有两层,一层是业务无关的BaseActivity,一层是业务相关有公共的AppBaseActivity。
具体业务如下:
2. net 存放的是网络底层封装。
3. Cache 缓存图片和数据
4. UI(view)存放自定义的控件
5. Utils 业务无关的工具类。比如StringUtils,SharedPreference等
二、模块拆分独立
根据业务的不同划分模块,业务间解耦,业务独立。
1. Activity:继续拆分,activity还是放在这里
2. Adapter:所有的adapter(适配器)都放这里
6. Utils:业务内的公共方法
数量剧增。
3. DB:业务不一样,自然可能需要不同的DB,故独立出来自己二次封装
4. Engine:业务相关的类都放在一起
5. UI:自定义的控件
7. Interface:只存放接口,要注意命名规则
8. Listener:放一些业务相关的Listener,注.针对事件编程就不好写这里,这会导致类
三、增加中间层解耦
图1中有Framework Layout。就承载了承上启下的作用,
模块化的时候,需要用到Router做data传递,解析。
插件化的时候,需要在这里进行classloader的处理。
这篇复杂,就不做详细叙述了