最近面试中经常被问到关于MVP的问题,现在写点读书笔记来记录学习一下MVP的架构模式。
MVP模式介绍
首先MVP是MVC的一个演化版本,全称Model View Presenter。MVP能够有效的降低View的复杂性,避免业务逻辑被塞进View中,很有效的接触来View与Model的耦合,同时又带来了很好的可拓展性、可测试性,保证了系统的整洁性和灵活性。
MVP模式的三个角色
Presenter —— 中间交互人
Presenter主要作为沟通View和Model的桥梁,它从Model层检索数据后,返回给View层,使得View和Model之间没有耦合,也将业务逻辑从View角色上抽离出来
View —— 用户界面
View通常是指Activity、Fragment或者某个View控件,它含有一个Presenter成员变量,通常View需要实现一个逻辑结构,将View上的操作交给Presenter进行实现,最后,Presenter调用View逻辑接口将结果返回给View元素
Model —— 数据的存取
Model角色的主要功能是提供数据存取功能,Presenter需要通过Model层存储、获取数据,Model就像一个数据仓库。更直白的说,Model是封装了数据库DAO或者网络获取数据的角色。