1、介绍
2、描述
Model 定义使用者界面所需要被显示的资料模型,一个模型包含着相关的业务逻辑。
View 视图为呈现使用者界面的终端,用以表现来自 Model 的资料,和使用者命令路由再经过 Presenter 对事件处理后的资料。
Presenter 包含着元件的事件处理,负责检索 Model 取得资料,和将取得的资料经过格式转换与 View 进行沟通。
MVP 设计模式通常会再加上 Controller 做为整体应用程序的后端程序工作。
Presenter---交互中间人
Presenter主要作为沟通View和Model的桥梁,他从Model层获取数据后,返回给View层,使得View和Model之间没有耦合,也将业务逻辑从View角色上抽离出来
View----用户界面
View通常指的是Activity,Fragment或者某个View控件,它含有一个一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作转给Presenter进行实现,最后Presenter调用View逻辑接口将结果返回给View元素
Model----数据存储
对于一个结构化的App来说,Model角色主要是提供数据的存取功能,Presenter需要通过Model层存储,获取数据,简单的说,Model就是封装了数据库DAO或者网络获取数据的角色,或者两者方式都有的集合
3、MVP模式的优缺点
优点:解除View与Model的耦合性,带来良好的可扩展性、测试性。
缺点:与MVC模式一样,对于小规模项目,反而会带来更多的工作量以及复杂性。
4、MVP的理解补充
Presenter:中间人,管理UI逻辑和数据逻辑的实现,但是怎么实现其不用考虑。它只负责两者的结合。这里LoginPresenter是中间人要做的事,而LoginPresenterImpl是其具体操作实现。这里管理登录操作和界面登录结果显示。
Model:就是类似JavaBean,实体类,这里数据逻辑要处理的事是LoginInteractor,即是登录操作,LoginInteractorImpl则是其具体实现,由LoginInteractorImpl获取数据操作,获得Model,就是登录获取的数据,即是JavaBean实体类,数据模型。
View:界面显示,这里LoginView表示了界面应该有的反应,如登录成功的反应,登录失败的反应。要显示在界面上。