Android用MVP开发的那些套路

好久没有更新简书了,可能大家都忘记了我(这么帅的一个程序猿)。

今天我为大家带来的是MVP的开发套路,帮助大家认识MVP,喜欢MVP。

MVP是什么?

实力偷图- -

MVP设计模式

view(客户),presenter(产品狗),model(程序猿)。

有一天,客户找到了产品狗说:“我要开发一个像微信一样的App”

然后,产品狗原封不动地转达了给程序猿,程序猿默默地说了一句:“傻X,有病”。

当然产品狗也不会这么傻,它当然要在客户面前夸他,于是在电话里头说:“我们的工作人员,对此表示有挑战性,但是他们很乐意。”

于是新需求就来了,最终苦逼的还是程序猿。

终于,程序猿受不了了,辞职了,但是又来了一批新的,需求还是需求,并不会因为人不同了,就推掉这单生意(重构项目)。

view(客户),contorler(产品狗),model(程序猿)

有一天,客户找到了产品狗和程序猿说:“我要开发一个像微信一样的App”

程序猿默默地说了一句:“傻X,有病”。

嗯,打起来了,项目没了。

通过这么深刻的故事,我们看到了MVP的优点

1.view和model相互不认识(解耦),并不会因为model不一样了,而影响了view,反过来也一样。那么model什么时候会变呢?例如,老子原来用的是Volley网络框架,但是我现在要换成OKhttp。没关系,我只需改动model即可。

2.model是面向接口文档编程的,view是面向设计图编程的,而presenter是负责协调的,这样就可以并行开发了。

3.测试,因为是view和model不认识(解耦),那么就可以单独地对model进行测试,验证它的准确性。做好了view,真机调试,又可以发朋友圈了。最后用presenter连起来,如果测试得好,Bug也会少很多。

4.做不好不用背锅,还可以多踩一脚(O(∩_∩)O~)。我做model的,数据给你了,你显示那么丑......这是一个后台跟App的故事。

5.presenter(产品狗),可以同时面对多个view(客户),做更多的事情(累死更多的程序猿)。

MVP的缺点

1.presenter负责逻辑,代码会多。(产品狗确实挺累的)

2.写得很累,明明view跟model可以直接相连,非要跟presenter联系,可能在传递时出现Bug。(明明程序猿可以跟客户面对面沟通,但是经过了产品狗,回来的需求就不一样了)

3.我还要想。(直接下个主题)

MVP开发攻略套路

model层

model开发一条龙

这是我开发的套路,希望你们喜欢。正常情况下,3天就能完成所有的接口文档对应的model。而在做model的时候,面对的是接口文档,没有比这个东西更接近需求了,因此,你做完之后会更加明白这个项目。

用Rxjava+Retrofit是什么体验

直接生成Bean对象

view层

view开发一条龙

简单但是暴力。我还有隆重地为大家推荐几款插件。

1.SelectorChapek for Android(自动生成Selector的XML文件),再也不要考虑那些乱七八糟的press,focus,normal

2.jimu Mirror(不需要写代码,就能在真机显示布局,包括列表),神器!加快了朕发朋友圈的速度。

3.butterknife(依赖注入库,自动注解布局中带@+id的控件),用完就更model的同学说,真慢!

4.Android studio自带的Get,Set生成器。

presenter层

Sept1

根据model的所需参数创建外部调用接口(presenter的方法接口)

Sept2

实现Sept1中的接口和model层提供的回调接口

Sept3

根据业务逻辑,调用view层提供的方法。

小结

由于model和view可以同时进行开发,提高了开发效率,减少了bug。

在外部调用方法中加上适当的注释,可以让我更好地沟通。

总结

MVP设计模式,是个很大的概念,我由于知识水平不够,很难跟大家讲得透彻。我只能按着我的理解来说明白,如果有哪些不对,请大家批评指正。

我前段时间做了一个ASP.NET mvc5的网站,虽然mvc5很清晰,但是在逐渐开发的过程中,model和view渐渐勾搭上了,到最后分不开了,我们也没办法。导致了项目重构的困难,最后的命运是重做。

我最近一段时间用MVP做了一个App,由于我对MVP的理解不到位,导致了代码很大部分的冗余,有一些没有必要提供外部调用的方法,我却硬要追求MVP模式的套路,结果导致了代码很乱,跟大家的忠告是,MVP是一个工程,不是一种硬性的规则,我们灵活一点。

我最近几天,做了一个看图的App,上篇文章介绍那个,我发现MVP模式上用上封装和继承,会让我们的代码更加的好看。而且复用率大大提高。

我是帅气小伙,在这里没有代码,有的只是我的想法,我的经验。希望大家喜欢!

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,455评论 25 707
  • Android App的设计架构:MVC,MVP,MVVM与架构经验谈1. 架构设计的目的1.1 通过设计使程序模...
    天空在微笑阅读 4,143评论 1 20
  • 作者:李旺成 时间:2016年4月3日 “Android MVP 详解(下)”已经发布,欢迎大家提建议。 MVP ...
    diygreen阅读 128,815评论 86 1,321
  • 天幕上的星辰 一颗一颗 如雪屑飘散 印成眸光熠熠 绽放成记忆深处的嫣然 年味的五谷香里 一个转身 婷婷袅袅 隐退了...
    兰若雪阅读 415评论 3 4
  • 昨天写了一篇微型小说,这是我做的一个尝试,因为故事是一种复杂集合,里面可以集合多个理念而不需要阐述利弊,相对于表达...
    a3600e655f43阅读 205评论 0 0