##MVP

###什么是MVC?

MVC(Model/View/Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型、视图、控制器。
MVC模式最早由Trygve Reenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。

Android中的MVP

###什么是MVP? MVP是从经典的模式MVC演变而来,他们的基本思想是想通的:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模式,MVP和MVC一个重大区别:MVP中View不直接使用Model,它们之间通信是通过Presenter来进行的,索引的交互都发生在Presenter内部,而在MVC中View会直接从Model众读取数据而不是通过Controller。

###Model 这层工作是具体逻辑处理的实现,程序中各种数据的处理,复杂一些的就明显需要实现一个interface来松耦合。

###View 负责数据显示、提供友好界面与用户交互。Activity和Fragment体现这一层,Activity加载UI视图、设置监听再交给Presenter处理一下工作,就需要持有相应的Presenter的引用。

###Presenter 这层处理程序中各种逻辑的分发,收到View层UI的反馈指令、定时指令、系统命令等指令分发处理逻辑交由Model层做具体的业务操作。

###主要目的

  • 易于维护
  • 易于测试
  • 松耦合度
  • 复用性高
  • 健壮稳定