MVP使用中不好的味道
不好味道之一:View 包含反应用户触控操作的方法
V和P老是分不干净分不清楚。MVP都是针对接口编程,所以有时候看接口就能找到问题
View接口
interface IChooseListDialog {/* 添加联系列表数据*/void addChooseList(List<IChooseItemData> chooseList);void setState(int state);/* 接受用户的选择结果*/void onChoosed(IChooseItemData... list);
}
在上面的 IChooseListDialog View接口中,出现了void onChoosed(IChooseItemData… list) 方法,用户的触控行为是 View所产生的,既然出现在View自身的接口中,那说明是被另一方Presenter所调用的,这明显的不对,反映用户的点击,触控等操作名称的方法应该出现在Presenter才对。
而对于View 接口来说,其方法名称主要是:
* 数据更新。包括状态,数据
* 展示UI特性 ,比如出现一个窗口,Toast之类
Presenter 接口
他的接口名称 主要是 用户的触控操作行为
interface IChooseListPresenter {/* 列表头被点击,这里都是创建新联系。*/void listHeaderPressed();void itemChoosed(T t);void itemEdit(T t);void errorIconPressed();}
不好味道之二:View的实现类中和具体的Presenter的实现类关联 或者 Presenter的实现类中和具体的View的实现类关联
如果想做到高可复用性,必须严格的针对接口编程。
MVP使用中不好的味道相关推荐
- mfc 如何判断excel软件是否打开_教你windows如何关闭假死窗口,了解自己使用的电脑。...
在我们使用电脑的时候会经常出现电脑卡机啊不好用啊等等情况,可是自己却不知道电脑为什么会那么慢,如何让电脑快些呢?先来介绍下电脑快慢是怎么回事.在电脑硬件都正常的情况下如果电脑慢会有以下几种情况: 1. ...
- 重构-改善既有代码的设计:简化函数调用 (八)
简化函数调用 1. Rename Method 函数改名 函数的名称未能揭示函数的用途.修改函数名称. 大力提倡的一种编程风格是:将复杂的处理分解成小函数.但是,如果做得不好,这会使你费尽周折却弄不 ...
- 重构手法之简化函数调用【1】
返回总目录 本小节目录 Rename Method(函数改名) Add Parameter(添加参数) Remove Parameter(移除参数) 1Rename Method(函数改名) 概要 函 ...
- 项目中SQL语句文件保存及提取方法
第十九章 SQL文保存方法 @http://blog.csdn.net/struts2/article/details/1745050 在开发JavaWeb应用程序的过程中可能经常需要使用到SQL语句 ...
- 转:靠谱的代码和DRY
http://www.cppblog.com/vczh/archive/2014/07/15/207658.html 靠谱的代码和DRY 上次有人来要求我写一篇文章谈谈什么代码才是好代码,是谁我已经忘 ...
- 老师傅告诉你,学校学的编程知识,和工作所需要的差别有多大!
工作和在大学学的知识是不一样的,我已经从事C/C++编程开发十多年.当初也是计算机专业毕业.这一点算是深有体会 我在面试很多计算机本科甚至硕士毕业生时,他们很难向我们展现出实际的项目经验和工作能力,因 ...
- 软件开发丨关于软件重构的灵魂四问
在软件工程学中重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 摘要 在本文中,您会了解到如下的内容: 先添加新 ...
- 《重构:改善既有代码的设计》读书笔记(上)
第一章:重构第一个示例 第一章作者通过一个示例讲解重构的过程.由于需求变化或代码不易于理解需要进行重构,重构前需要有一个可靠的测试,重构的过程应该是小步修改,每次修改后就运行测试,测试过程中可以先 ...
- Android 精华 - 收藏全集 -
Android - 收藏集 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发 ...
最新文章
- Async Mode: Future使用
- C# WMI 编程实例2则
- 【Android】刷Rom:adb reboot bootloader
- Java RMI远程方法调用详解
- ElasticSearch全文搜索引擎之Windows集群搭建
- 【裴礼文数学分析】例1.1.1
- 计算机的源端口号是你根据,网络协议的判定是根据源端口还是目的端口?
- ajax jsonp跨域访问,jquery ajax怎么使用jsonp跨域访问
- VR全景视频、图片播放器
- discuz教程 毫无基础常识的站长搭建HTTPS。图文并茂
- Element UI修改message控件显示的时间
- 查看 class 文件
- 关于Qt 5-MSVC 2015 64位在 win7 64位系统debug程序崩溃的问题
- 11——去哪儿网(总结)
- Linux RPM 构建实战
- H5获取用户所在城市 网页获取用户城市名称
- Android设置屏幕保持长亮
- 网络史话 因特网简史
- 根据dem提取坡度的相关问题
- [突发奇想的JS小案例] 2 重力模拟
热门文章
- mysql 逻辑架构
- 【问题】vs IIS破除文件上传限制最全版
- 我来悟微服务(3)-需求管理
- 快应用之手摸手,跟我走(1)
- OCIEnvCreate failed with return code -1 but error message text was not available with ODP.net
- NUC1429 WERTYU【输入输出】
- 《精通Python网络爬虫:核心技术、框架与项目实战》——1.3 网络爬虫的组成...
- 机器学习——利用K-均值聚类算法对未标注数据分组
- vue-cli#2.0项目结构分析
- HTML基础笔记-02