移动应用的模块化重构(一)

       我以前工作过公司有一个项目,需要我将不同项目(以下简称原项目)的代码切割出来一部分,再将切出来的部分组成一个新的项目(以下简称组合项目),而且要求我当原项目有更新的时候,需要将更新后的代码合并进这个组合的项目中来。刚开始考虑很简单,把项目中的代码一遍一遍的拷贝过来就好了,很容易啊,可是慢慢的我应付不来了,代码量太大,每次拷贝的时候我都需要将新增的代码通读一遍,找到其中需要的部分拷贝到组合项目中来,于是我的团队就在想能不能通过将代码模块化的思路来解决这个问题。

        第一步,在原项目中构建模块,先将原项目中需要的代码进行整理,把在组合项目中需要用到的代码都整合到一个目录下(当然目录下还是可以有子目录的),这样每次拷贝代码我只需要将这个目录下的代码拷贝到组合项目中,这样就可以节省大量的时间了,

        第二步,有个问题出现了,新拷贝进来的代码还是还是需要花费时间来找到入口,一旦原项目中的功能入口变了,组合项目中也需要变更,于是在原项目中添加了一个类用于处理真个功能的对外和对内的交流工作。

       以上两步已经将我的工作量减少了90%,后来由于一些原因我离开了那个公司,但是这次的代码经验让我对于项目的架构有了一些新的想法,我们能不能将项目的业务进行分离,将模块进行分离,清晰业务边界,清晰功能边界,粗略的画一个架构图,


基础:包括通用控件,通用方法,常量都可以放在基础中,

模块:包括网络模块,图片处理,分享,支付等等,模块和模块之间不进行相互调用

业务:根据具体的业务来做出划分,业务掉用模块,业务和业务之间不进行相互调用

APP:使用业务,通过业务的的对外类来调度使用业务

        这样一来,我们可以根据需要针对某一模块,某一业务进行扩展,只要保证负责出入口的类一直,在模块内部或者业务内部代码的有变更的时候,也不会对整体有非常大的影响。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,821评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,050评论 2 59
  • 我们都会遇到这样孤独无助的时刻,它们的存在,不是为了打倒我们,而是让我们学会更加坚强地面对人生。等你熬过...
    布大叔阅读 236评论 0 0
  • 在adb shell环境下使用dumpsys activity命令查看activity所属stack、task信息...
    Jimmy_gjf阅读 332评论 0 0
  • 梦想,需要自己去追寻,而不是一味等待。---题记 过年的回家时光仿佛是一场短暂又愉悦的梦,醒来的时候,总有些遗憾…...
    碧婵Mary阅读 649评论 0 4