优点:
1.解耦
几乎所有的思想都是为了解耦,提高维护性。
解耦在生产中实际效果是,把一个大工程,拆分成多个小工程。每个工程之间相互独立。可单独测试
这样的好处是吧“单线程”变成“多线程”,原来一个人做一年的工作量,现在可以拆成若干个工程,交给多个人一起去做。提高效率,缩短交付时间。
而且每个人只需要专注于自己那一部分,对于大项目,或者工期紧的项目是非常重要的。
2.提高了维护性
容易区分边界,一旦出了问题,能立刻定位是哪个模块,哪个个接口除了问题。模型与视图完全分离,我们可以修改视图而不影响模型;
3.容易测试
将业务逻辑从activity,fragment中分离出来。更容易进行单元测试
4.结构清晰
让思路更清晰,不至于自己的代码,过两天再看就成了“别人的代码”了。
缺点
由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。还有一点需要明白,如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。一旦视图需要变更,那么Presenter也需要变更了