MVP模式
来源:互联网 发布:在淘宝开童装店 编辑:程序博客网 时间:2024/06/07 09:38
一、概述
对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等。本篇博文仅是为了做下记录,提出一些自己的看法,和帮助大家如何针对一个Activity页面去编写针对MVP风格的代码。
对于MVP,我的内心有一个问题:
为何这个模式出来后,就能被广大的Android的程序员接受呢?
问了些程序员,他们对于MVP的普遍的认识是:“代码很清晰,不过增加了很多类”。我在第一次看到MVP的时候,看了一个demo,看完以后觉得非常nice(但是回过头来,自己想个例子写,就头疼写不出来,当然这在后文会说)。nice的原因还是因为,这个模式的确让代码的清晰度有了很大的提升。
那么,提升一般都是对比出来的,回顾下,没有应用MVP的代码结构。很多人说明显是MVC么:
- View:对应于布局文件
- Model:业务逻辑和实体模型
- Controllor:对应于Activity
看起来的确像那么回事,但是细细的想想这个View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller(当然了Data-Binder的出现,可能会让View更像View吧)。这可能也就是为何,在该文中有一句这样的话:
Most of the modern Android applications just use View-Model architecture,everything is connected with Activity.
而当将架构改为MVP以后,Presenter的出现,将Actvity视为View层,Presenter负责完成View层与Model层的交互。现在是这样的:
- View 对应于Activity,负责View的绘制以及与用户交互
- Model 依然是业务逻辑和实体模型
- Presenter 负责完成View于Model间的交互
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- mvp模式
- MVP模式
- mvp模式
- MVP模式
- MVP模式
- mvp模式
- MVP模式
- mvp模式
- MVP模式
- mvp模式
- MVP模式
- B/S与C/S的区别
- 网站开发(此处以新闻网站开发为例)
- javaweb 后台 获取前台form提交post的参数中文乱码
- Servlet中两种请求方式的区别
- MySQL添加新用户、为用户创建数据库、为新用户分配权限
- MVP模式
- 谈谈微服务中的 API 网关(API Gateway)
- 微软为.NET程序员带来了最优的跨平台开发体验-WSL
- IDEA插件JRebel安装配置与破解激活详细教程
- 对于二次型损失函数在minist手写体识别中是否合理的理解
- 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别
- CNAAC开展应用安全标识“年终特惠”活动
- python中文(汉字)转拼音
- bootstrap下拉