MVP那些事儿(1) 用场景说话

目录

MVP那些事儿(1)……用场景说话

MVP那些事儿(2)……MVC架构初探

MVP那些事儿(3)……在Android中使用MVC(上)

MVP那些事儿(4)……在Android中使用MVC(下)

MVP那些事儿(5)……中介者模式与MVP的关系【知识点】

MVP那些事儿(6)……MVC变身为MVP

MVP那些事儿(7)……Kotlin实现MVP【知识点】

MVP那些事儿(8)……当MVP遇到Lifecycle【知识点】

MVP那些事儿(9)……探究MVP的最佳实践

MVP那些事儿(10)……MVVM双向绑定

MVP那些事儿(11)……基于MVVM的Architecture Components

引言

随着这几年移动互联网的快速发展,移动互联网技术也得到了推动,辅助架构设计型的框架和思想层出不穷,从井喷的2015年到现在,开发者们越来越离不开这些高性能、高效率的工具,而制造这些工具的公司或个人,也被推到神坛,受猿们的膜拜。与此同时,Google在今年的io大会上发布了自己的官方框架Architecture Components【译】,可以说是相当的应景了。时不我待,了解架构的知识,并且灵活的应用是我们程序员未来必不可少的技能,这系列文章是介绍MVP架构的,希望能对阅读此文的朋友们带来些收获。

1、如何实现一个MVP框架的基本原则,以及MVP的使用场景,是我想写这篇文章的初衷,同时也是对我自己学习的知识做一个总体的融合。

2、为了避免一上来生硬的开场,我先以一个简单的开发例子作为引子,以初学者的角度去看待问题,同时也能兼顾到初学者,到后面我们会一步步提示。所以你也可以选择直接跳转到。。。。

3、因为讲架构,多是场景描述,所以代码量比较少,习惯于通过代码理解的同学,我尽量多些并反复描述。

场景

假设实现一个商品的列表展示功能,我们首先需要一个用户界面,包含一些控件来供用户操作,比如列表展示。我们大多数情况下使用一个Fragment作为控件的载体,在Fragment中直接调用网络请求的工具并等待回调方法被执行后去刷新UI去展示数据,所以对于这个需求的代码量并不是很多。现在需求增加了,要加入下拉刷新和上拉加载更多,一般是监听这两个事件,在相应的回调中处理数据,没几行代码,依旧写在Fragment中,而需求又一次增加了,要加入排序,紧接着我们处理排序逻辑,代码依旧写在Fragment中,接着又增加需求了,加入详情页的跳转,可能跳转前要处理些业务逻辑,接着又要增加需求了,列表视图可以从宫格式转变为瀑布式,需要改变控件的样式,……接着新需求又来了,可编辑的列表项,可以删除和修改列表项,同时数据要同步到服务器,需求又来了,编辑列表项需要动画功能……直到这个时候我们回头再看看我们的Fragment,这个时候我们可能无法容忍Fragment里混乱复杂的逻辑了。

从功能性需求的角度来说,功能完整、软件正常运行,这是没有问题的,但回过头来我看了一下代码觉的并不是那么“没问题”,在不使用架构的情况下,我们无感知的将逻辑代码业务以及视图代码都堆积到了Activity当中,这样的角色可以说是相当的臃肿的,同时非常不利于未来的扩展,于是非功能性的需求需要满足:Activity优化与扩展性。

我们再梳理一下这个场景的需求列表:

1、列表展示

2、列表支持下拉刷新,上拉加载更多

3、列表要可以排序,可能会有n个条件

4、列表的item点击跳转到详情页面

5、列表展示需要多样化,瀑布流变宫格

6、列表可编辑,也许包括CURD,同时要同步服务器

7、编辑列表时,加上动画效果

下一章节,我们首先使用加入架构的方式来处理上面的需求,其中会介绍Model的定义,Controller的职责,以及它们如何通过控制反转来进行解耦,如果你对MVC有了足够的了解,可以直接跳转到MVP的章节。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271