不好味道之一: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使用中不好的味道相关推荐

  1. mfc 如何判断excel软件是否打开_教你windows如何关闭假死窗口,了解自己使用的电脑。...

    在我们使用电脑的时候会经常出现电脑卡机啊不好用啊等等情况,可是自己却不知道电脑为什么会那么慢,如何让电脑快些呢?先来介绍下电脑快慢是怎么回事.在电脑硬件都正常的情况下如果电脑慢会有以下几种情况: 1. ...

  2. 重构-改善既有代码的设计:简化函数调用 (八)

    简化函数调用 1.  Rename Method 函数改名 函数的名称未能揭示函数的用途.修改函数名称. 大力提倡的一种编程风格是:将复杂的处理分解成小函数.但是,如果做得不好,这会使你费尽周折却弄不 ...

  3. 重构手法之简化函数调用【1】

    返回总目录 本小节目录 Rename Method(函数改名) Add Parameter(添加参数) Remove Parameter(移除参数) 1Rename Method(函数改名) 概要 函 ...

  4. 项目中SQL语句文件保存及提取方法

    第十九章 SQL文保存方法 @http://blog.csdn.net/struts2/article/details/1745050 在开发JavaWeb应用程序的过程中可能经常需要使用到SQL语句 ...

  5. 转:靠谱的代码和DRY

    http://www.cppblog.com/vczh/archive/2014/07/15/207658.html 靠谱的代码和DRY 上次有人来要求我写一篇文章谈谈什么代码才是好代码,是谁我已经忘 ...

  6. 老师傅告诉你,学校学的编程知识,和工作所需要的差别有多大!

    工作和在大学学的知识是不一样的,我已经从事C/C++编程开发十多年.当初也是计算机专业毕业.这一点算是深有体会 我在面试很多计算机本科甚至硕士毕业生时,他们很难向我们展现出实际的项目经验和工作能力,因 ...

  7. 软件开发丨关于软件重构的灵魂四问

    在软件工程学中重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 摘要 在本文中,您会了解到如下的内容: 先添加新 ...

  8. 《重构:改善既有代码的设计》读书笔记(上)

    第一章:重构第一个示例   第一章作者通过一个示例讲解重构的过程.由于需求变化或代码不易于理解需要进行重构,重构前需要有一个可靠的测试,重构的过程应该是小步修改,每次修改后就运行测试,测试过程中可以先 ...

  9. Android 精华 - 收藏全集 -

    Android - 收藏集 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发 ...

最新文章

  1. Async Mode: Future使用
  2. C# WMI 编程实例2则
  3. 【Android】刷Rom:adb reboot bootloader
  4. Java RMI远程方法调用详解
  5. ElasticSearch全文搜索引擎之Windows集群搭建
  6. 【裴礼文数学分析】例1.1.1
  7. 计算机的源端口号是你根据,网络协议的判定是根据源端口还是目的端口?
  8. ajax jsonp跨域访问,jquery ajax怎么使用jsonp跨域访问
  9. VR全景视频、图片播放器
  10. discuz教程 毫无基础常识的站长搭建HTTPS。图文并茂
  11. Element UI修改message控件显示的时间
  12. 查看 class 文件
  13. 关于Qt 5-MSVC 2015 64位在 win7 64位系统debug程序崩溃的问题
  14. 11——去哪儿网(总结)
  15. Linux RPM 构建实战
  16. H5获取用户所在城市 网页获取用户城市名称
  17. Android设置屏幕保持长亮
  18. 网络史话 因特网简史
  19. 根据dem提取坡度的相关问题
  20. [突发奇想的JS小案例] 2 重力模拟

热门文章

  1. mysql 逻辑架构
  2. 【问题】vs IIS破除文件上传限制最全版
  3. 我来悟微服务(3)-需求管理
  4. 快应用之手摸手,跟我走(1)
  5. OCIEnvCreate failed with return code -1 but error message text was not available with ODP.net
  6. NUC1429 WERTYU【输入输出】
  7. 《精通Python网络爬虫:核心技术、框架与项目实战》——1.3 网络爬虫的组成...
  8. 机器学习——利用K-均值聚类算法对未标注数据分组
  9. vue-cli#2.0项目结构分析
  10. HTML基础笔记-02