MVP模型复杂视图的思考
MVP模型应该是android比较流行的一种设计方法。view和 data解耦非常棒。但是有一个缺点就是presenter类比较多,接口更是很多。
MVP模型在简单的视图下,比较没有悬念,1个view 对应一个presenter
但是在视图比较复杂,视图需要分离的时候就有交互上的问题了。
目前我在代码中分别应用了如下三种方式:
一:. 一个P对应一个VManager:
使用这种方式的好处:
控制端对视图的调用 只调用viewManager就好。无需考虑在各种情况下使用各种View。将View的显示交给ViewManager。
坏处:
1.P和V端中的方法会非常多,因为ViewManager包含了所有View的方法。
2.ViewManager因为涉及到了创建各种view、fragment实际上只能由Activity来扮演。
二:P V单对单,P之间的交互由PresenterManager来管理
这种方式的好处
视图控制分离
1.PManager和P端中的方法会非常多,因为PManager包含了所有P的方法。
2.P端需要考虑时间创建view。因为view不是在第一时刻全部创建的。
三:P V 单对单 P之间如果有交互则相互引用
好处:P V 一对一、只实现对应接口,没有多余接口
坏处:有交互的P之间不是接口编程而是实现编程
这种方式还可以使用RxBus/EventBus来解耦P之间的交互
因为目前我使用的是第三种方式,前面两种方式没有思考太多,肯定还有问题。
第三种方式并不是最好的方式。使用哪一种方式需要考虑view的实际情况。