一、MVC和MVP的概念、优缺点
1.概念:
MVC和MVP都是一种框架设计思想。他们都有Model层和View层,model层是处理数据,包括数据库、网络请求,view层是展示数据,不同的是MVC中的C表示控制器(有点像中央控制器,M层和V层的交互由C层转发)。在MVP中P Presenter(主持人),是辅助协调M层和V层间的通信。和MVC中的C有点类似,但是在MVC中M层持有对C层的引用,而在MVP中M层不持有C层的引用,是通过回调callback的方式把数据交给P层。他们最不同的一点是MVP采用了契约类也就是接口的方式来约定各个层之间的通信方式。
MVC的优点:
- 控制层和View层都在Activity中进行操作,数据操作方便
- 模块职责划分明确.主要划分层M,V,C三个模块.
MVC的缺点:
因为MVC中,V层是activity/fragment+xml,C层也是activity/fragment,所以就导致了随着硬件的发展,软件也越来越庞大、复杂,随着软件的迭代,activity/fragment里的代码越来越多,就会导致不好解耦,越是到后期,越不好维护和扩展,经常是改动一个地方其他很多地方也被修改,不利于单元测试。
MVP的优点:
- 模块职责划分明显,层次清晰,接口功能也非常清晰.
- Model层和View层是分离的,能完全解耦.修改View层而不影响Model层.
- 功能复用度高,方便.一个Presenter可以复用于多个View,而不用更改Presenter的逻辑.
- 有利于测试驱动开发,以前的Android开发是难以进行单元测试.
- 如果后台接口还没有写好,但已经知道返回数据类型的情况下,完全可以写出此接口完整的功能.
MVP的缺点:
虽然MVP优点很多,但是它也有缺点,缺点就是需要定义大量接口
所以MVP对于MVC来说,降低了耦合度,实现了我们软件开发中的高类聚,低耦合,开闭原则(对扩展保持开的态度,对原有代码保持闭的态度)











网友评论