CoreLibs设计

  • CoreLibs的设计初衷是为了解决新项目框架搭建比较耗时耗力的问题. 以前搭建一个新的框架需要从旧项目中拷贝通用的类以及各种资源文件, 是一件毫无难度的体力活. 因此将旧项目中可以通用的类与资源文件整合到一个依赖库中, 并且在做项目的过程中如果有新写的通用库或者修改的bug则直接在Corelibs中修改, 并且同步到一份副本中. 这样通过维护一份Corelibs副本来解决搭建新项目框架的问题.

  • 但是随着项目越来越多, 人员水平的参差不齐, 项目难度越来越大, 代码质量以及后期难以维护的问题就被放大了.这些问题主要是体现在于Activity/Fragment过大上, 当然还有一些其他因素影响. 因此新的CoreLibs引入了MVP来拆分Activity/Fragment的职责.

  • 引入MVP还有一个另外的原因就是模块的复用. 项目多就意味着有很多重复的功能 - 登录, 注册, 修改密码等等, 全部重新开发会浪费大量时间从而造成效率低下. 由于MVP完全将View与Presenter分离, Presenter持有的是View的接口, 因此, 拿登录模块举例, 只需要将登录的Presenter与View的接口复制到新项目中, 然后用新的Activity/Fragment去实现V的接口就完成了. 因为新项目和旧项目的登录的区别可能就只是在界面的不同, 内部逻辑基本上是完全一致的. MVP的被动视图很好的解决了逻辑变化不多, 但是界面变化频繁的情况.

  • 引入了MVP就势必会增加开发工作的复杂度, 毕竟一个类要拆分成好几个, 类之间的相互引用会增加一些重复代码. 因此CoreLibs通过一系列的Base类引入模板方法, 来达到减少一些重复代码的目的.

  • 同时, 引入一些第三方库来简化开发过程. 会在后面一一介绍.

Last updated