MVP——Model-View-Presenter
它是
MVC
模式的变种。
UI
是容易变化的,且是多样的,一样的数据会有
N
种显示方式;业务逻辑也是比较容易变化的。为了使得
Application
具有较大的弹性,我们期望将
UI
、逻辑(
UI
的逻辑和业务逻辑)和数据隔离开来,而
MVP
是一个很好的选择。
Presenter代替了Controller,它比Controller担当更多的任务,也更加复杂。Presenter处理事件,执行相应的逻辑,这些逻辑映射到Model的Command以操作Model。那些处理UI如何工作的代码基本上都位于Presenter。Presenter如同一个乐队的指挥家,表现和协调整个Application,它负责创建和协调其它对象。 Model和View使用Observer模式进行沟通;而Presenter和View则使用Mediator模式进行通信;Presenter操作Model则使用Command模式来进行。基本设计和MVC相同:Model存储数据,View表示Model的表现,Presenter协调两者之间的通信。在 MVP中 View 接收到事件,然后会将它们传递到Presenter, 如何具体处理这些事件,将由Presenter 来完成。