展开

关键词

android MVP 思路

android MVP 思路概念mvp是一个新的android开发,在之前的mvc的基础上进行修改,目标是使得逻辑和显示解耦,达到模块化。 缺点正是因为使用了接口来解耦模块之间的关联,因此会出现接口类增加,可以适当的使用MVP模式,在一些很简单的逻辑业务里面,可以不采用MVP。 这个开发,在慢慢演变,出现了一种思路,就是将Model继续分解,出来一个管理Model的DataManager,对Model进行统一管理。 下来为了更好地理解MVP的思路,我们看下官方的MVP demo地址如下:https:github.comgooglesamplesandroid-architecturetreetodo-mvpView 我们看到这里定义了一个mTasksPresenter.随后造了一个TasksFragment,然后使用?

44380

菜鸡的MVP漫谈

相信大家在网上看过关于MVP的博客数不胜数,至于MVP到底是什么,也不需要我再从百度百科复制一遍了,通俗的说MVP就是解决Model和View的耦合,没有使用的代码就是一个Activity里处理了 UI逻辑、网络请求等等,有的时候一个Activity五六百行,我曾经看过同事的一个适配器上千行,因为业务逻辑过于复杂,说了这么多,MVP到底有什么作用呢? 我们非用不可吗,MVP可以把功能抽离出来,因为一个项目中会出现很多页面的某个功能是相似的,这就代表我们不用的话,重复的代码会大量的出现在我们的项目中,这不符合单一原则,最后引用一下大佬的总结,“mvp 是对客观不足的妥协,规范是对主观不足的妥协。” 博客总结修改的,也是自己在项目中用的,比较简单、简陋,但是对于小项目也够用了,也没打算用MVP的开源框,全自己手写,这里解释下为什么有抽象基类Presenter,因为所有的Presenter都要判断

22820
  • 广告
    关闭

    11.11智惠云集

    2核4G云服务器首年70元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    跟着google学习mvp

    作者博客http:www.jianshu.comucd0fe10b01d2文章目录前言文件目录基本的Activity里面的MVP数据层关于测试用例 1前言? https:github.comgooglesamplesandroid-architecture这章节内容,将会带大家分析google官网这个的好东西。 Todo-mvp的样例,其实是一个简单的记事App。2文件目录从文件目录我们很简单的看?addedittask:编辑记事界面 ?data:数据设计 ?statistics:显示任务记录? 3基本的Activity里面的MVP请认真观看官网的这张图 ? 图示中非常清楚的说明了MVP的基础,Presenter和View之间可以相互操作,数据交流,Model(模块)此处是离开Activity的全部图示都算是Model数据层,可以看到,其实通过一个REPOSITORY

    12940

    【译】Android开发中的MVP

    尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP建。这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的,它包括以下几点:为什么越来越多的人开始关注? 首先,MVP是什么?哪种才是最好的,MVC,MVVM还是MVPMVP的利与弊Show me the code!!! 当然,远不止这三种模式。而且任何一种模式都不可能是银弹,他们只是模式之一,不是解决问题的唯一途径。这些只是方法、手段而不是目的、目标。利与弊OK,让我们回到MVP上。 刚刚我们了解了什么是MVP,讨论了MVP以及其它热门,并且介绍了MVC,MVP和MVVM三者间的不同。 (译者注:Android中的清晰。译文)- Fernando Cejas我认为这是在探索如何将MVP到Android开发专题中最著名,也是最受欢迎的博客。

    16120

    Android官方MVP项目解析

    项目说明项目目的是通过展示各种app的不同方式来帮助开发者解决问题。项目中通过不同的概念及方式实现了功能相同的app。你可以用示例来当做参考,或是干脆拿来当做创建app项目的基础。 项目中,希望大家能把关注点集中到代码结、整体、可测试性、可维护性这四个方面。当然实现app有很多种方式,千万不要把它当做定式。目前已经完成的示例有:todo-mvp:mvp基础示例。 dev-todo-mvp-clean:基于todo-mvp, 使用了Clean的概念。dev-todo-mvp-dagger:基于todo-mvp,使用了Dagger2进行依赖注入。 ),重点是代码结,整体、可测试性和可维护性。 但以上毕竟是的Sample,是为了说明思想,因此有些地方我们在实际运用中需要注意:数据库和网络的操作都应该放在工作线程,用户回退后需要取消网络请求、回调接口置为null等。

    17830

    跟着google学习mvp(clean篇)

    作者博客http:www.jianshu.comucd0fe10b01d2文章目录前言文件目录事件调度流程总结 1前言第一篇「跟着google学习mvp」介绍的Todo-mvp源码体验,这是基础篇。 这一节是要介绍含有域名层的MVP todo-mvp-clean?我们可以看到它比基本的MVP其中添加了一层新的Domain Layer层。 当然需要做成异步任务的,所以我们需要创建线程池,UseCaseThreadPoolScheduler就是自定义的线程池调度类3事件调度流程在其他资料里找到clean一个deleteTask的一个时序图 然后DeleteTask里面可以看到有一些MVP的taskRepository的操作,覆写了excuteUseCase方法,然后还需要继承RequestValues和ResponseValue创建两个静态的类 不知道大家是否知道这里Clean运用了一种设计方式?这里其用了命令模式,通过对不同命令封装统一的excute的方式来替换,关于命令模式大家可以查看一下HeadFirst-设计模式。

    15450

    Android登录代码MVP详解

    登录代码MVP的具体实现,分享给大家。 ; private EditText mPassword; private Button login; private ProgressDialog mProgressDialog; private Mvp super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); mMvp = new Mvp users.username)&&frq.equals(users.password)){ return true; }else { return false; } }}Mvp.javapublic class Mvp { MVP Precenter层 public Mvp(fff fff) { mFff = fff; } public Boolean isEmpty(User users){ if (TextUtils.isEmpty

    11730

    Base封装(一)--我的最简MVP

    对了 打一波广告 我的新的个人博客 http:hankkin.cn 好了接下来开始我们的MVP背景众所周知 MVP这种模式已经出现很久了,大体时间应该是2014年吧,现在网上的关于MVP的文章也很多 ,各式各样的关于MVP知识都涌现出来,可想而知现在这种有多么火,还有目前风头正劲的MVVM,当然我并不觉得我现在写MVP有些晚,因为每个人都有每个人的,每个人都可以根据自己的逻辑封装出来自己的模式 P层作为V层和M层的中间枢纽,处理用户交互的业务逻辑MVP实现1.基本实现我们都知道一般MVP一共需要以下四步:定义一个interface接口XView,对应的Activity,Fragment实现这个 Example我们按照功能模块来造我们的MVP,可能大家注意到了没有M层啊,是的,这里我把M层舍弃掉了,把业务逻辑、网络请求直接放在了P层,大大减少了类的数量,这样我们每个功能模块只需要新建一个View https:github.comjeasonlzyokhttp-OkGo好了下面看我们的例子吧:项目结看一下项目结 HomeView我用的Gank.io里面的一个接口获取数据,首先我们定义我们的HomeView

    30510

    Base封装之我的最简MVP

    对了 打一波广告 我的新的个人博客 http:hankkin.cn好了接下来开始我们的MVP背景众所周知 MVP这种模式已经出现很久了,大体时间应该是2014年吧,现在网上的关于MVP的文章也很多, 各式各样的关于MVP知识都涌现出来,可想而知现在这种有多么火,还有目前风头正劲的MVVM,当然我并不觉得我现在写MVP有些晚,因为每个人都有每个人的,每个人都可以根据自己的逻辑封装出来自己的模式 P层作为V层和M层的中间枢纽,处理用户交互的业务逻辑MVP实现1.基本实现我们都知道一般MVP一共需要以下四步:定义一个interface接口XView,对应的Activity,Fragment实现这个 Example我们按照功能模块来造我们的MVP,可能大家注意到了没有M层啊,是的,这里我把M层舍弃掉了,把业务逻辑、网络请求直接放在了P层,大大减少了类的数量,这样我们每个功能模块只需要新建一个View 的MVP

    55490

    关于MVP在Android上的应用

    最近研究了一下android开发的一些框,对于开发整体上具有一定好处,对于拓展测试修改也具有一定的优势。? 下面自己尝试进行一个简单的mvp的编写 首先是一个登陆画面 Model层: public interface IModel { 一个接口 boolean login(String id,String ) findViewById(R.id.idEditText);pwdEditText= (EditText) findViewById(R.id.pwdEditText);}}以上就是一个简单的登陆mvp 的实现

    18510

    Android之路-三步实现MVP(上)

    我们都知道要学一个新东西,我们都会先看官方说明,所以我讲带领大家一起解读Google官方MVP示例。2.解读Google官方MVP已完成的示例有: todo-mvpmvp基础。 dev-todo-mvp-clean:基于todo-mvp, 采用Clean的概念。dev-todo-mvp-dagger:基于todo-mvp,使用Dagger2进行依赖注入。 对于采用哪种,取决于该项目的规模以及后期测试维护。基于todo-mvp分析该示例有四个界面(功能): ?? 后面我将带领大家一起MVP的时候,解决该问题。 我们对Google官方示例解读完了,关键的事来了,我们要怎么一个属于自己的MVP。就让我手把手教大家三步MVP。持续关注下篇继续介绍。

    23510

    Android之路-三步实现MVP(下)

    在上一篇我已经介绍了MVP的概念,还有对Google官方的示例进行了讲解。请移步:Android之路-三步实现MVP(上)。本文我将带领大家一起MVP。? 1 MVP项目分包对于项目分包,有的人喜欢根据功能分包,也有人喜欢根据组件或者模块进行分包。分包原则:使得项目结清晰,功能明确,便于查询与后期维护。 具体看个人爱好,没有严格规定,大家先看一张我分包后的项目结:?1-1 项目结项目结:1、base:存放一些我们封装的基类。2、contract:存放契约类。 到此为止,MVP已经完成了,是不是很简单。这个是最基础的MVP,后面我也会结合Clean思想,进行重新。 敬请期待哦~3、总结在这个设计中,也存在在一些不足,比如:1、在造presenter的时候,传进去的Context有可能会出现内存泄漏,我现在解决的方法是传getApplicationContext

    15620

    MVP开发,一篇让你从看懂到会使用

    :github.comyaozsYzsLib文章目录前言mvp到底是个什么东西对mvp设计思路分析mvp的基本设计、使用对于mvp的个人理解最后 1前言现在网上关于mvp的文章有很多,但是对于一些不是特别理解这个的开发者 P:P层,也就是Presenter层,他是我们mvp中的中间人,通过p层的连接,让我们可以是M层和V层进行通信。 3对mvp设计思路分析一些开发者不使用mvp不是因为觉得这个不好,而是没弄明白这个到底是怎么个逻辑,所以在这里,把我自己对于他的理解分享给大家,作为大家的参考,共同学习进步。 p的接口对象,p层持有v层和m层的接口对象,m层为p层的提供数据,这时也就形成了mvp,三者之间通过p层相互连接。 单V多p多m。???model模块拆分,将大量复用的model单独拆分出来,让这个model可以去被其他model调用。??6最后以上内容就是我对于MVP的理解,分享给大家。

    23920

    Android之路--三步实现MVP(基础篇-上)

    我们都知道要学一个新东西,我们都会先看官方说明,所以我讲带领大家一起解读Google官方MVP示例。2.解读Google官方MVP 已完成的示例有: todo-mvpmvp基础。 dev-todo-mvp-clean:基于todo-mvp, 采用Clean的概念。dev-todo-mvp-dagger:基于todo-mvp,使用Dagger2进行依赖注入。 后面我将带领大家一起MVP的时候,解决该问题。 用一张图来看它们的关系: 2-5 关系图我们对Google官方示例解读完了,关键的事来了,我们要怎么一个属于自己的MVP。就让我手把手教大家三步MVP。 Android之路--三步实现MVP(基础篇-下)参考:http:www.jianshu.comp389c9ae1a82c

    4800

    Android之路--三步实现MVP(基础篇-下)

    在上一篇我已经介绍了什么是MVP,还有对Google官方的示例进行讲解,还有不懂得,可以看Android之路--三步实现MVP(基础篇-上)。现在我将带领大家一起MVP。 1.MVP项目分包对于项目分包,有的人喜欢根据功能分包,也有人喜欢根据组件或者模块进行分包。分包原则:使得项目结清晰,功能明确,便于查询与后期维护。 具体看个人爱好,没有严格规定,大家先看一张我分包后的项目结:1-1 项目结项目结:1、base:存放一些我们封装的基类。 2、contract:存放契约类。 好了,MVP已经完成了,是不是很简单。这个是最基础的MVP,后面我也会结合Clean思想,进行重新。 敬请期待哦~3、总结在这个,也存在在一些不足,比如: 1、在造presenter的时候,传进去的Context有可能会出现内存泄漏,我现在解决的方法是传getApplicationContext(

    3600

    Android MVP 初试

    目前讨论MVP MVVM 的也来越多,这种也很适合Android。 研究MVP记录如下源码地址RxMVP分支Tag02原有的MVC刚开始接触Android的时候会觉得Android的整个代码就是一个MVC。 : 业务层和模型层,相当与javabean和我们的业务请求代码V : 视图层,对应Android的layout.xml布局文件C : 控制层,对应于Activity中对于UI 的各种操作看起来MVC很清晰 维护的成本也越来越高新的MVPM : 还是业务层和模型层V : 视图层的责任由Activity来担当P : 新成员Prensenter 用来代理 C(control) 控制层MVP与MVC最大的不同 控制层的角色就由我们的新人 Presenter来担当,这种就解决了Activity过度耦合控制层和视图层的问题。一个简单实践?

    48830

    Android MVP 封装

    上一篇我们简单实现了一个MVP,下面我们来做一个简单的封装使其使用更简单方便源码地址RxMVP分支Tag03最终实现目录结如下? 向外部提供了一个 initPresenter(); 方法用来初始化presenter,如果想创建不同参数的造函数都可以随意去创建。

    16830

    Android十八章:5分钟学会用MVP开发Android项目

    简单的mvp登录demo,根据功能分包,参考自google mvp 主要面向有mvp经验的读者,阅读时间大约 5 min mvp 的思想是把显示和业务逻辑从activity,fragment这些View view的通信通过Presenter来搞定,这样子就降低了一个activity成千代码量的可能,以后修改业务逻辑,新增方法只要model层实现好,然后在Presenter层暴露接口给view调用就好了,mvp 相比mvc会提项目结易读性,也有一些不足就是要多写类来协助开发,不太熟悉的同学就会拉慢开发速度。 这个对象要赋值才能使用,所以我们会在LoginPresenter造方法给mView赋值。并且在造函数调用mView的setPresenter给View层的负责登陆业务的Presenter赋值。 注意,mPresenter主要是为了复制给view并让view绑定Presenter,一定要先实例化mPresenter,因为在LoginPresenter的造函数中,会传入mView,才会让LoginPresenter

    43720

    Android MVC、MVP、MVVM、MVP-databinding 单元示例

    GitHub地址:ProjectPatternStudy 基本Android项目都采用MVC、MVP、MVVM,个人认为软件没有绝对的优劣之分,大家都各有利弊。 MVP-databinding:是使用MVP,但是布局使用databinding设置值,也是行之有效的一种,也可以满足你的需求。 MVC Model-View-Controller,最常见的软件之一。 视图(View):用户界面。 MVP-databinding 基本实现了MVC,MVP,MVVM后,我发现它们各自有各自的优缺点。 MVC:简单,单一页面可以实现。但是不利于复杂页面。 MVP:解耦,结清晰。 in Android 阮一峰: MVC,MVP 和 MVVM 的图示 Jensen: Android中的MVC和MVP(分析+实例) CSDN: 认清Android框 MVC,MVP和MVVM End

    46940

    【DIY数字仪表】使用TouchGFX的MVP来实现GUI和硬件的双向交互(2)

    本期将简单介绍一下TouchGFX的MVP使用方法。 ----演示视频: 1.如何理解TouchGFX中Screen的MVPMVP的全称为Model-View-Presenter,Model提供数据,View负责显示,ControllerPresenter 小结在MVP中,所有数据只能保持在Model的类对象中,Presenter是View与Model之间的纽带,View只能通过Presenter来读取数据,而不能直接读取Model中的数据。 2.使用TouchGFX MVP来实现UI和硬件的双向交互Model-View-Presenter 软件:? 利用MVP填写代码: ?2.2 把CPU使用率参数传递给UI显示使用TouchGFXDesigner制作cpu实用率的自定义控件,然后将这个控件添加到需要的界面 ?

    44320

    扫码关注云+社区

    领取腾讯云代金券