MVP最核心就是将界面与数据彻底分离,并且由其中的P来进行逻辑处理,与界面与数据之间的调用,在这个例子当中很好的对他们进行了分离:
IView只是用来控制界面的显示与事件的监听
Presenter则用作于数据与界面之间的调用与逻辑处理
AbstData为数据的统一接口
这三个类都继承IConnect,以方便它们之间进行通讯。
具体的实现都是由Presenter的子类来进行操作的,比如ShowNetPresenter它组装了具体的细节,供IView的实现类ActivityA来进行使用。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiN2QzM0IDM0EzMxETM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
我们可以在Activity中写入一个静态方法,以便传入我们要具体使用的Presenter的实现类:
就像这样:
在它的内部,对传入的类进行实例化:
于是,IView的实现类便于Presenter的实现类产生了交互,它们之间便可进行通讯。
更多详情请参见项目源码:
在该项目中,因为有些仓促,所以某些设计可能没有完全遵从设计原则,请在使用的时候适当修改。