早期的android开发,就我而言,模块化非常的差。主要是没有这种概念和经验。也是近期一两年,才渐渐有了这样的思维,越来越发现其中的好处。
现在,大多数大公司的项目中随处可见MVP的设计模式来设计app,怎么说,用起来非常的难受,但是在后期的维护中却是非常的有用。
前一两年,基本上都是用介于MVP和MVC之间的一种设计模式来开发app,优点就是既能够像MVC那样快速的开发,逻辑没有那么的复杂,又能带有点MVP的味道,使得各个模块之间的耦合没那么强。
就最近的我自己一个人从0到整体app雏形完成的这个过程中,就发现了MVP使用起来,双甜苦辣各在其中。你需要额外的去思考,如何定义一个Activity中的功能,以及功能接口的名称,在P层中还需要去维护如果有后台线程操作的情况下,如何去操控它的生命周期。另外还需要考虑MVP带来的内存泄露问题。必须要使用软引用。
在开发到后期的时候,发现整体的类文件数量会是MVC设计模式的好几倍。你在A层和P层之前的解耦动作有时候也变的相对的复杂,而且还要考虑到有些P层的代码具有一定的公用性。需要做一定的抽离。
所以前段时间看见自己在MVP的模式下敲出来的P层很多逻辑上都非常的混乱。花了一两天去整理了一下。后期发现其实在使用了P层的开发模式之后,模块之间的代码重复冗余率低了,使用效率上高了很多。总之利还是大于弊的,开头总是辛苦,后期就会显得非常的轻松。