MVP面向协议编程
MVP模式是MVC模式的一个演化版本(好像所有的模式都是出自于MVC~~),MVP全称Model-View-Presenter。顾名思义。
Model:与MVC中的model没有太大的区别。主要提供数据的存储功能,一般都是用来封装网络获取的json数据的集合。Presenter通过调用Model进行对象交互。
View:这里的View与MVC中的V又有一些小差别,这个View可以是viewcontroller、view等控件。Presenter通过向View传model数据进行交互。
Present:作为model和view的中间人,从model层获取数据之后传给view,使得View和model没有耦合。
说了那么多,总得来说MVP的好处就是解除view与model的耦合,使得view或model有更强的复用性。
上一下MVP的概念图:MVP精髓点
- 写什么样的接口
- 谁成为代理
- 谁实现代理
目标需求驱动代码
MVP优缺点
- 模型与视图完全分离,我们可以修改视图而不影响模型
- 可以更高效地使用模型,因为所有的交互都发生在一个地方--Presenter内部
- 我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁
- 如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)