关于MVP的小考虑以及MVVM

2024-05-16 14:32
文章标签 mvp mvvm 考虑

本文主要是介绍关于MVP的小考虑以及MVVM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于MVP



个人做法,把原来Activity层的数据请求放到Presenter类,然后在Presenter请求结果中调用View层的操作,Presenter作用是请求数据和调用View
    包含:基础的BasePresenter接口和BaseView接口,Model的bean类,对应页面的Activity类,对应页面的Presenter类



hongyang大神的:

http://blog.csdn.net/lmj623565791/article/details/46596109

Model层:

bean类

请求接口类
请求实现类
View层:
View的接口类
View的实现类
Presenter层:
拿到View和Model层对象
调用请求实现类的方法请求数据
调用View实现类的方法操作UI

这样的presenter层才是起到了桥梁的作用



别人分析的官方的demo:

http://blog.csdn.net/ljd2038/article/details/51477475


基础BaseView,BasePresenter
还有一个契约接口,这个接口内部包含了View和Presenter的接口

Model层:
请求接口类
请求实现类
Presenter层:
实现了契约接口中的Presenter接口,实现了请求接口的callBack
总之也是一个中间的桥梁的作用
View层:
实现了契约接口中的View接口


说实话,目的是为了简化代码,提高可读性,便于维护。但是感觉越来越麻烦:

比如我只有简单的一个页面,如果按照这个模式写就要写一堆接口和实现。

感觉自己还是适合用简单的方法。(菜鸟没办法...)



关于MVVM:

参看了http://blog.csdn.net/u012702547/article/details/52077515


感觉很吊的样子,数据和布局在一个xml中声明,然后再Activity中使用BindingUtils处理。

但是不是很喜欢这种方式,所以先不学习了




这篇关于关于MVP的小考虑以及MVVM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995170

相关文章

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

分布式系统的主要考虑

异构性:分布式系统由于基于不同的网路、操作系统、计算机硬件和编程语言来构造,必须要考虑一种通用的网络通讯协议来屏蔽异构系统之间的禅意。一般交由中间件来处理这些差异。缺乏全球时钟:在程序需要协作时,它们通过交换消息来协调它们的动作。紧密的协调经常依赖于对程序动作发生时间的共识,但是,实际上网络上计算机同步时钟的准确性受到极大的限制,即没有一个正确时间的全局概念。这是通过网络发送消息作为唯一的通信方式

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期,通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈,因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发一款机器人。项目经理希望确保在机器人被实际建造之前,团队能够收到关于需求的早期反馈并相应地调整设计。项目经理应该使用以下哪一项来实现这个目标?

Python 中考虑 concurrent.futures 实现真正的并行计算

Python 中考虑 concurrent.futures 实现真正的并行计算 思考,如何将代码所要执行的计算任务划分成多个独立的部分并在各自的核心上面平行地运行。 Python 的全局解释器锁(global interpreter lock,GIL)导致没办法用线程来实现真正的并行​,所以先把这种方案排除掉。另一种常见的方案,是把那些对性能要求比较高的(performance-critica

前端---对MVC MVP MVVM的理解

就需要从前端这些年的从无到有、从有到优的变迁过程讲一下。 1. Web1.0时代 在web1.0时代并没有前端的概念,开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常用多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、c#/Java/PHP代码,系统整体架构可能是这样子的: 我们可以看到服务端是比较重的,有一块既在客户

MVVM到底是什么

MVVM到底是什么 文章目录 MVVM到底是什么一、MVVM是什么二、为什么这么定义1. 分离关注点2. 提高可维护性3. 数据绑定和事件驱动4. 支持前端框架的发展 三、底层逻辑1. ViewModel层2. 数据绑定3. 事件驱动4. 响应式系统 四、扩展与高级技巧1. 组件化开发2. 双向数据绑定3. 计算属性和侦听器4. 插槽

一个同行的mvvm详细讲解

下面的地址是一个同行讲的mvvm,讲得非常详细,清晰,推荐! http://www.ios122.com/2015/10/mvvm_1/ http://www.cocoachina.com/ios/20160301/15425.html https://github.com/lovemo/MVVMFramework-Swift    代码示例!

【MVVM】Data Binding代码实践(告别findViewById)(四)

Data Binding实战(一)  Data Binding语法解析(二)  Data Binding高级用法(三)  好了,继前三篇学习了Data Binding之后,我们可以发现它的强大之处有这么几点: 1、使用MVVM模式,让整个项目结构清晰明了  2、通过ViewModel连接View和Model,使得View与Model层解耦,分层后各司其职,维护方便  3、易于项目的测试

【MVVM】Data Binding高级用法-Observable、动态生成Binding Class(三)

设置View的id 虽然说Data Binding这种分层模式使得我们对数据的传递简单明了,一般情况下我们可以不设置View的id,不使用findViewById即可对View进行数据上一系列的操作,不过有时候根据情况我们需要对某些View设置id,但是还是可以不findViewById即可得到该控件的对象,因为设置id后ViewDataBinding类会自动生成对应的控件对象,如: <c