一、简介
M全称model,业务处理,比如请求网络数据。
V 全称view,UI显示
P全称presenter,model与view的交互
二、MVP 与MVC模式的差异
MVC模式在很多程序员看来已经很棒了,但model,view,controller各个模块之间并不能很好的解耦。通常情况下,view模块不仅要处理控件及点击事件、显示等操作,还需要处理网络请求等,可能造成代码量大,代码结构不清晰,令新参与的程序员看起来头大。
MVP模式与MVC模式的最大不同是,MVP模式阻断了model层与view层的耦合,通过presenter这个纽带将model和view解耦,他们通过接口回调方式实现来达到解耦的目的。当然MVP模式并不是完全没有缺点,它的缺点是,每个模块会产生多个类,使工程中类的数量变得庞大起来,不过与它的优点相比,这些缺点是可以忽略的。
三、MVP模式的优点
使model与view之间解耦,增加代码的复用性。
适合较大项目,项目中的UI做改动时,不需要变动model层的代码。
代码结构清晰,可读性强。
为项目将来的维护工作降低时间成本。
四、MVP的工作原理
使得view层仅仅处理控件申明、点击事件、显示等操作。model获取网络数据后通过接口回调交给presenter,presenter根据结果做相应判断后,通知给view层处理。
五、源码组成结构
六、例子
本例是MVP以简单的登录作为例子,欢迎大家下载指正。(例子中必须输入用户名 fang, 密码 123 才可以登录成功,输入其他登录失败)
源码下载地址 请戳这里。