Presenter处理逻辑,Model提供数据,View负责显示。
与MVC不同之处
- MVC是个圈,View直接访问Model,会包含业务逻辑
- MVP分离显示层和逻辑层,所有交互都在Presenter内,Presenter就像中间的桥
实现过程
- 定义M、V、P的三个接口,View中需要包含一个Presenter
setPresenter
- 定义一个Contract接口,包含MVP三种接口的实现
- 现在我们需要一个View层的具体类,需要继承Contract.View,对应的需要一个Presenter层的具体类关联起来
private Contract.Presenter presenter
这种写法 - 上面的Presenter类需要包含View和Model的实现类,继承Contract.Presenter,
private Contract.View view private Contract.View view;
这种写法 - 同样Model的实现类要继承Contract.Model,返回数据
所以最后使用View实现类中函数的时候,会自动调用Presenter中的逻辑,Presenter又可以获得数据。
网友评论