MVP模型复杂视图的思考

来源:互联网 发布:黑客远控软件 编辑:程序博客网 时间:2024/06/05 21:52

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的实际情况。


原创粉丝点击