MVP
MVP全称Model-View-Presenter。顾名思义:
- Model:与MVC中的model没有太大的区别。主要提供数据的存储功能,一般都是用来封装网络获取的json数据的集合。Presenter通过调用Model进行对象交互。
- View:这里的View与MVC中的V又有一些小差别,这个View可以是viewcontroller、view等控件。Presenter通过向View传model数据进行交互。
- Presenter:作为model和view的中间人,从model层获取数据之后传给view,使得View和model没有耦合。
总的来说MVP的好处就是解除view与model的耦合,使得view或model有更强的复用性。另外,MVP是面向协议的设计模式,下面看一张图:
理解:
1,controller,view是属于MVP中的V,model即为上图中的M,关键的Presenter,是对V,M的组织;
2,在数据模型M中发起请求,在Presenter组织好数据,通过协议,哪个view遵守了Presenter的协议,数据返回给指定的view;
3,V与M是完全解耦的,在controller界面进来,引入Presenter,通过协议,从而形成了请求数据--展示到指定的view上。其实是把逻辑处理放到了Presenter这里。
以下是我的MVP附件:https://gitee.com/farawei/MVP