首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【译】Android开发MVP架构

什么是MVPMVP代表Model,View和Presenter。 View负责处理用户事件和视图部分的展示。Android,它可能是Activity或者Fragment类。...下图是基于MVP架构的模式之一。View是UI线程。Presenter是View与Model之间的适配器。UseCase或者DomainModel,负责从实体获取或载入数据。依赖规则如下: ?...那么,哪一个才是最好的呢?哪一个比其他的更优秀呢?我能只选择一个吗? 答案是,NO。 这些模式的动机都是一样的。那就是如何避免复杂混乱的代码,让执行单元测试变得容易,创造高质量应用程序。就这样。...Karumi工作的高级Android开发工程师所讲的,他解释了一些MVP架构的设计模式(如,渲染模式,仓库模式和命令模式)。...M — Model in MVC, MVP, MVVC in Android(译者注:MVC,MVP,MVVC架构ModelAndroid的定义) - Artem Zinnatullin 如果你不还了解

48320

基于.Net 三详解

架构/模式/框架 首先说下什么是三架构,解释三架构之前,应该先分清楚架构,模式,框架的区别。...模式 软件开发遇到某些特定的问题,而由此总结出来的固有的普适的经验,解决方法,就是模式。例如我们常说的 GOF 23 种设计模式 ,MVC 模式MVP模式等等。...GOF 23 诸如常见的工厂模式,单例模式,原型模式,适配器模式等等…… 计划整理一遍23种模式的原型代码,暂时可以参考 TerryLee -.NET设计模式系列文章 MVC/MVP MVC/MVP 则极为常见...而 MVP与MVC有着一个重大的区别:MVPView并不直接使用Model,它们之间的通信是通过Presenter (MVC的Controller)来进行的,所有的交互都发生在Presenter内部...功能明细化,每一负责各自职责,这样在出现问题时,可以轻松排查出问题出现在哪一,从而快速做出响应。同时,一定程度的降低了代码的耦合度,从而提升复用率,某种度上来说,可以提升开发效率。

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

vue-cli学习笔记 MVC、MVP、MVVM

MVCView和Controller一般是一一对应的,捆绑起来表示一个组件,视图与控制器间的过于紧密的连接让Controller和View都变得无法复用 2....MVP 概念 MVP(Model-View-Presenter)是MVC模式的改良,由IBM的子公司Taligent提出 和MVC的相同之处在于:Controller/Presenter负责业务逻辑,Model...管理数据,View负责显示 特点 MVC里,View是可以直接访问Model的,但MVP的View并不能直接使用Model,而是通过为Presenter提供接口,让Presenter去更新Model...,再通过观察者模式更新View 与MVC相比,MVP模式通过解耦View和Model,完全分离视图和模型,使职责划分更加清晰 View不依赖Model,可以将View抽离出来做成组件,它只需要提供一系列接口提供给上层操作...,还解决了数据频繁更新的问题 jQuery操作DOM就很频繁 MVVM,View不知道Model的存在,ViewModel和Model也察觉不到View,这种低耦合模式可以使开发过程更加容易,提高应用的可重用性

18610

Unity手游实战:从0开始SLG——UI框架篇(一)各种UI框架模型简介

2.局部耦合,虽然大的环境下实现了局部封闭,但是局部内的各个之间的逻辑耦合还是很深。 想象一下,如果把上面的局部展示放大到游戏开发的话会是什么样? ?...来看看谷歌的MVP模式: https://github.com/googlesamples/android-architecture/tree/todo-mvp/github.com MVP即Model-View-Presenter...在这个模式下,M和V的连接被完全切断了,以前C只是负责一些简单的转发和处理,现在P的任务变的更重,除了桥梁的作用之外,还需要做初步甚至高级的逻辑处理来处理M-V或者V-M的交流过程。...抛弃了P的手动关系接口和维护。当然每种技术都有其存在的意义和解决的问题。至于选取什么样的方案去解决问题,就要看项目自己的需求更符合哪一类的设计。...1.4 游戏开发应该使用什么? 注意,以上的三种方法都是来源于软件,都是来源于软件,都是来源于软件 。游戏开发也都是套用这些概念来进行UI的开发设计的。

3.9K42

“终于懂了“系列:Jetpack AAC完整解析(四)MVVM - Android架构探索!

各个组件之间的连接则明确和相对细致地描述组件之间的通讯。实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。面向对象领域中,组件之间的连接通常用接口来实现。...MVVM MVVMAndroid开发是如何实现的呢?接着看~ 到这里你会发现,所谓的架构模式本质上理解很简单。...仓库 要做的主要工作是判断调用方请求的数据应该是从本地数据源获取还是从网络数据源获取,并将获取到的数据返回给调用方。...当然也要检查下 原MVP的 Model的实现,是否满足上面的要求。...四、总结 本篇介绍了 架构模式的含义,回顾和比较了Android的架构模式MVC、MVP、MVVM,最好在 Jetpack架构组件 基础上 介绍了 MVVM 的详细实现方法、注意点,以及MVP的改造。

1.9K10

软件架构设计-软件架构风格、分层架构

(事务应该放到业务来控制) 持久 (dao ) 负责数据持久化,包括数据即数据库和数据访问,数据库是对数据进行持久化的载体,数据访问是业务和持久交互的接口;业务需要通过数据访问将数据持久化到数据库...当然 MVP 与 MVC 也有一些显著的区别,MVC 模式中元素之间“混乱”的交互主要体现在允许 View 和 Model 直接进行“交流”,这在 MVP 模式是不允许的。... MVP View 并不直接使用 Model,它们之间的通信是通过 Presenter (MVC 的 Controller)来进行的,所有的交互都发生在 Presenter 内部,而在 MVC...架构风格和设计模式的区别 架构风格往往是从全局的角度来考虑问题,他是一种独立于实际问题的通用组织结构。例如,常用的B/S架构,很多不同的系统,都有应用。...而设计模式着眼于解决某一特定的局部问题,是一种局部解决方案的应用。例如,很多的软件系统,创建对象时,希望有统一的机制对这些对象的创建进行管理,所以出现了工厂模式,创建者模式等设计模式

1.9K31

JavaScript 设计模式学习第二十六篇- MVC、MVP、MVVM 模式

MVP 模式 MVC 基础上进一步解耦,视图层和模型完全隔离,交互只能通过管理来进行,问题是更新视图需要管理手动来进行; 3....,其中 MVVM 是最常用到的,实际项目中往往没有严格按照模式的定义来设计的系统,开发也不一定要纠结自己用的到底是哪个模式,合适的才是最好的。...MVC 模式提出已经有四十余年,MVC 模式各个书、各个教程、WIKI 的解释有各种版本,甚至 MVC 模式不同系统的具体表现也不同,这里只介绍典型 MVC 模式的思路。...Presenter 管理 :负责连接 Model 和 View ,处理 View 的事件,负责获取数据并将获取的数据经过处理后更新 View; MVC 模式的 View 和 Model 存在耦合...Vue 的双向绑定机制应该算是比较有 MVVM 模式的影子,但 Vue 文档 里面是这么描述: ?

65310

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

让我们从第一部开始,一步步走进mvp。 2 mvp到底是个什么东西 我们所说的mvp架构,是google开源的一个设计模式,目的是为了将代码更加优雅清晰的呈现出来,废话也不多说,直接分析。...同时,view的点击事件等处理会在这里出现,但真正的数据处理不是在这里,而是model处理。...P:P,也就是Presenter,他是我们mvp架构的中间人,通过p连接,让我们可以是M和V进行通信。...p的接口对象,p持有v和m的接口对象,m为p的提供数据,这时也就形成了mvp架构,三者之间通过p相互连接。...6 最后 以上内容就是我对于MVP架构的理解,分享给大家。初学者应该先把mvp架构的普通用法学会后,再尝试我文中提到的三种进阶方式,如果直接看的话可能不是特别理解。

2.6K31

唯一可行的 iOS 架构

为了解决这个问题,我们应该重新考虑一切,从头开始。我们将真正深入在这些架构,并会发现我们犯的主要错误。 如果我告诉您,iOS 只有一种可能的架构模式,甚至没有任何模式?你会怎么想呢?...Reenskaug 总结了这十年 MVC 积累的 GUI 应用程序开发的主要思想和解决方案。 并没有像“嘿,我们10年内创建了一种通用模式,您应该用它来解决任何问题”。这是我们犯的根本错误。...但是,让我们再次考虑一下我们开始时描述的每种架构,您会发现它们 iOS 环境是多么的奇怪甚至荒谬。 MVP MVP 是其中最奇怪的一个。...其中哪一个与 Apple MVC 更相似?是的,Apple MVC 看起来更像是 MVP,而不是原始的 MVC。我们如何称呼它并不重要。Apple MVC 无论如何都与它们两者不同。...MVC 不会强迫我们 UIViewController 编写所有代码。如果需要,我们可以 Presentation 创建其他类。

1.2K20

层次风格SOA-架构师之路(十)

表示客户机,功能应用服务器,数据在数据库服务器。 优点: 1、各层逻辑相互独立。 2、并行开发。 3、整个系统的管理层次也更加合理和可控制。...富互联网应用RIA: Rich internet application 弥补三B/S存在的问题,RIA是一种用户接口。优点如下: 1、RIA结合C/S的反映速度,交互性强和结合B/S传播广泛。...MVP架构: 把controller换成了presenter(呈现)。为了完全切断model和view的联系。 解决了mvc数据不安全问题。安全着想,不能让前端直接和model核心数据连接。...MVP都是双向通信。 MVVC架构: 和mvc模式类似,主要分离视图view和model。 1、低耦合,一个viewModel可以绑定到不同的view。 2、可重用性。...3、企业服务总线ESB 简单来说就是一根管道,连接各个服务节点。可有协议转换,为了集成不同协议的不同服务,保证各个服务互联互通。

27310

MVC, MVP, MVVM比较以及区别

ModelMVC架构起的作用非常重要,它应该是业务逻辑真正的实现。所以Model的实际上是Business Model(业务模型)。...为什么这么说: 因为在其它模式V都代表的是UI界面, 是一个html页面,XAML文件或者winform界面。但是MVP模式的V代表的是一个接口,一个将UI界面提炼而抽象出来的接口。...4.5 MVP模式总结 MVP里,Presenter完全把Model和View进行了分离,主要的程序逻辑Presenter里实现。...六, MVC, MVP和MVVM模式使用场景总结 由于winform无法像WPF一样,支持数据和界面的双向绑定以及事件的监控,所以,winformMVP是最佳选择。...(应该说WPF就是为使用MVVM设计的) web应用,由于http是基于请求和响应方式协同工作的, 无法一直保持连接状态,所以无法达到MVPPresenter之间的消息传递和MVVM的ViewModel

2.6K100

聊聊程序设计思想之面向接口编程IOP

MVP模式虽然能解决许多MVC模式下存在的问题,但对于比较复杂的需求, 还是会存在逻辑过于复杂,Presenter也出现难以维护的问题。...V1.0 单文件上传 实现一个简单的单文件上传,文件的索引存储在数据库,文件存储App的沙箱里面。这个应该对于有经验的客户端开发者来说是小菜一碟,比较简单也容易实现。...我们可以把这个需求大致拆分成以下几个子需求 初始化上传View 更新上传View 点击上传按钮事件 数据库获取上传模型 发起HTTP请求上传文件 检查网络状态 以上几项如果使用传统的MVC模式,实现起来如下图所示...主要还是为了能够解耦,下层设计的目的是为上层服务的,它不应该依赖上层。这种设计模式计算机科学是很常见的,比如计算机网络的网络分层设计。...软件开发是工程化的,没有完美的架构模式,很多时候需要具体问题具体分析,灵活运用设计模式,得到局部的最优解。比如前面提到的MVP模式,如果生搬硬套,同样无法解决Presenter复杂的问题。

1.2K21

浅谈前端常用的 MV* 架构模式

软件工程师们多年的架构设计工作总结出一些经验,这些经验被称为“架构模式”。架构模式可以帮助你定义程序的基本特征和行为。...对比MVC模式的由 Model 通知其观察者View来更新视图, MVP模式,View(视图)和 Model(模型)是完全分离的状态,两者通过Presenter进行联系, 此时的观察者是Presenter...View可以组件化.MVP,View和Model完全分离,View不需要关心业务逻辑的变化,只需要暴露接口给Presenter; 2. 便于测试....此外,还引入了一个隐式的一个Binder, 而声明式的数据和命令的绑定在MVVM模式中就是通过它完成的. 调用关系 MVVM的调用关系和MVP一样。...只需要告诉Binder,View显示的数据对应的是Model哪一部分即可。目前,前端开发框架如:VUE.js就是典型的MVVM的架构. 所以,MVVM 模式基本上与 MVP 模式一致。

69331

常见的客户端架构解析

某个 Model 的所有节点都应该处在同样的问题等级,将面向问题的节点(如日历的预约)和实现细节(如图形)混在一起是不好的。 Views: View 是它的 Model 的(可见)表示。...Controller 不应该去补充 Views,比如它不会在几个 View 之间绘制箭头把它们连接起来。 View 永远不会知道用户的输入,譬如鼠标操作和键盘点击。...这个模式其实没有特别大的问题,但是由于 Cocoa 的 ViewController 还承担了 View Container 的工作,我们日常开发又容易把 Model 设计得过于单薄(比如只是一个单纯的数据对象...由于 iOS 并没有一个内建的绑定机制,很多人觉得项目中多一数据转换就是 MVVM 了,这有一些片面。...MVP 的主要思想是用户输入由 V 流进,V 通过 P 更新 M,同时 V 跟 M 之间还是跟 MVC 中一样,V 可以调用 M 的接口,M 通过观察者模式向 V 广播自身的更新。

2K30

Android MVP模式 入门

1.前言    近些年来,Android架构模式有很多,我们比较熟知的有MVC,MVP以及MVVM,目前Android市场中使用最多的应该MVP架构,虽然MVVM结合DataBing看似更加方便...2.MVP和MVC相比     毋庸置疑的是,每种模式架构都有自己的优缺点,在这里借用弘扬大神的两句话 View:对应于布局文件 Model:业务逻辑和实体模型 Controllor:对应于Activity...而MVP的出现,是的view不能和Model直接交互,Presenter作为中间的桥梁,连接view和model,将view和model完全解耦,使得Activity代码不再臃肿。 ?...而在view,也就是对应的activity只需要继承view的接口,通过Presenter去操作其中的方法即可。...这样,实现一个网络请求判断用户登录,view的代码,就变得简洁多了,便于我们后期对代码的维护。 ? ?

49530

界面之下:还原真实的MV*模式

原文地址:https://github.com/livoras/blog/issues/11 前言 做客户端开发、前端开发对MVC、MVP、MVVM这些名词不了解也应该大致听过,都是为了解决图形界面应用程序复杂性管理问题而产生的应用架构模式...MVP(Passive View)的依赖关系 MVP模式把MVC模式的Controller换成了Presenter。MVP层次之间的依赖关系如下: ?...(关键) 对比MVC,Controller是不能操作View的,View也没有提供相应的接口;而在MVP当中,Presenter可以操作View,View需要提供一组对界面操作的接口给Presenter...MVP当中,View不依赖Model。这样就可以让View从特定的业务场景脱离出来,可以说View可以做到对业务完全无知。它只需要提供一系列接口提供给上层操作。...只需要告诉Binder,View显示的数据对应的是Model哪一部分即可。

58520

聊聊iOS的 MVC、MVP、MVVM以及 VIPER等代码组织方式

现在我们面对架构设计模式的时候有了很多选择: - MVC - MVP - MVVM - VIPER 首先前三种模式都是把所有的实体归类到了下面三种分类的一种: - Models(模型)数据,或者负责处理数据的...但是现实我们的View依然跟Model耦合,因为如果完全按照这个理想化的MVC的话,View(cell)的设置都应该在 Controller,这样的话,Controller会更臃肿。...(2)持有关系也不一样,MVC C 持有 M和V,但是MVP V 持有 P,P 持有M 。...ios,MVVM编码可能会成这样 这个图解准确地描述了什么是 MVVM:一个 MVC 的增强版, 我们正式连接了视图和控制器,并将表示逻辑从 Controller 移出放到一个新的对象里, 即 View...作为一种新的模式MVP与MVC有着一个重大的区别:MVPView并不直接使用Model, 它们之间的通信是通过 Presenter (MVC的Controller)来进行的,所有的交互都发生在

4.1K21

MVP模式的经典封装

说到MVP,大家应该都不陌生了,由于其高度解等等优点,越来越多的项目使用这个设计模式。...那么对MVP模式进行封装就显得很重要了。当然,一千个人中有一千个哈姆雷特,这里提供一下我的思路,供大家参考。 什么是MVP模式 ?...MVP模式相当于MVC模式又加了一个Presenter用于处理模型和逻辑,将View和Model完全独立开,android开发的体现就是activity仅用于显示界面和交互,activity不参与模型结构和逻辑...view,只定义与UI展示的相关方法,如检查账号密码格式成功(失败)、登录成功(失败)等。 model负责数据请求,所以接口中只定义了登录的方法。 回调定义了登录成功还是失败的方法。...创建两个方法,一个是检查格式,一个是登录。两个方法就是业务的处理。 如登录方法,登录返回后,回调得到数据,也可以再进行一些逻辑判断,将结果交给view的对应的方法。

89420

常见的面试问题总结

2.举一个现实的类似的例子,MVC如同一家商铺的运作模式,View相当于是这家商铺的店面,Model相当于这家商铺的仓库,Controller相当于是这家商铺的执行部门。...3.MVC有如下两种模式,不管哪种模式,MVC的通信都是单向的,由图也可以看出,View会从Model拿数据,因此MVC的View和Model还是存在耦合的。 ?...MVP模式概要 1.MVP是从MVC进化而来,即Model、View、Presenter;View和Model同MVC的M和V,MVP只是将MVC的Controller变成了Presenter; 2....由上面对MVC的介绍我们可以得知,MVC的View和Model是存在耦合的,但其实我们不提倡View与Model有直接的交互;MVP就是这样一种思想的体现,View与Model的交互只能通过...MVVM模式概要 1.MVVM是由MVP进化而来,MVVM模式基本上与MVP相同,只是把MVP的P变成了VM,即ViewModel, 2.MVVM的数据可以实现双向绑定,即View层数据变化则ViewModel

47630
领券