以前开发针对功能较多的应用,一般是通过分包的形式将各个模块进行解耦,然后将将通用的工具或者逻辑进行封装供其他模块使用,但是这样依然很难进行有效的解耦,因为其他包里面的类依然可以通过new的方式进行创建,很难进行把控,尤其针对各个功能模块可能需要单独上线的应用更是无法满足要求,不经意就会出现空指针异常。
来到现在的项目组之后接触了一个组件话开发的框架CC,一个可以实现组件动态组册,完成各个组件很好的隔离的框架,好处自然不用多说,此文章我们先大致介绍一下组件化的基本知识:
第一个问题:什么是组件化?
组件化这三个字顾名思义就是将一个项目拆成多个项目,也就是说一个项目由多个组件组成,就比如一辆汽车,你可以把它拆分成发动机、底盘、车身和电气设备等四个模块;又比如一架飞机你可以把它拆分成机身、动力装置、机翼、尾翼、起落装置、操纵系统和机载设备等7个模块,那么你在开发项目的时候是否也应该把你的项目根据业务的不同拆分成不同的模块,如果不同的模块可以单独运行的话,我们就可以叫它组件。
第二个问题:组件化开发有什么好处?
- 现在市场上的app几乎都有个人中心这个东西,那么是不是可以把个人中心的所有业务都提到单独的一个模块中,当然是可以的,我们将它放在一个单独的模块中,这个时候你会发现一些好处:
- 耦合度降低了
- 你需要修改个人中心的时候直接从这个模块中找修改的地方就好了
- 你需要测试的时候直接单独运行这个模块就好了,不需要运行整个项目(测试的效率是不是提高了很多呢)
- 由于测试的时候可以单独编译某个模块编译速度是不是提高了呢
- 如果是团队开发的话,每个人单独负责自己的模块就好了(妈妈再也不用担心我的代码被人家修改了)。
第三个问题:组件化开发的步骤(以我的demo目录为例,我的demo主要有一个主程序【app】和四个组件【component_base,libraryone,librarytwo,xpush】demo地址:CCDemo):