浅尝MVVM

2024-06-01 04:38
文章标签 mvvm 浅尝

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

对于安卓开发,设计鼻祖MVC的思想,让Actvity承担的责任更重,造成xml功能弱小,Actvity累死。小型项目可以拿来试试,中大型项目不建议考虑,不然几千几万行的Actvity会让你发狂。

于是,顺势而为,MVP诞生。将xml和Activty都划分到view层,model依然作为业务逻辑和实体模型的载体。这个时候Presenter横空出世。作为view和Model之间的交互。但是代码量大大增加,虽然降低了耦合,可复用扩展性强,但是对于码农来说,功过相抵吧。适合用于中小型项目。

最新一直炒的火热的MVVM思想站出来了,据说是要解除一些诟病,拯救世界。下面就举一个MVVM的例子来看一下如何拯救世界:

MainActvity

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);User user = new User(666,"一口仨馍", "走在勇往直前的路上");binding.setUser(user);user.setAccount("一口四个馍");}
}
实体类User:

public class User {private int id;private String account;private String pwd;public User() {}public User(int id, String account, String pwd) {this.id = id;this.account = account;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}
}
actvity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><import type="com.dyk.mvvp.bean.User" /><variablename="user"type="User" /></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="@{String.valueOf(user.id)}" /><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="@{user.account}" /><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="@{user.pwd}" /></LinearLayout></layout>

看起来似乎简洁了很多,可以有很多时间去约会了,但是,故事并未结束。

那些身先士卒的英雄向我们证明了,有的时候数据获取不到,有的时候报错难以排查。当然,详细的坑,还需要发烧君前去试探。

虽然前途漫漫,危险重重,相信Oracle大君会排除万难,为广大的码农填平这些坑。

PS:读出了Spring依赖注入的味道。。。


这篇关于浅尝MVVM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

前端---对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

【MVVM】 Android Data Binding语法解析(二)

上篇我们知道了Data Binding的最简单的用法,那么Data Binding其中最为重要也是最复杂的其实就是在xml布局文件中给对应的控件进行数据绑定了,接下来就一一说明Data Binding的使用各个场景的语法。 我们以User类这个Model为例: <code class="hljs java has-numbering" style="display: block; p

【MVVM】Android Data Binding实战(一)

在今年Google I/O大会上,Google推出Design Library库的同时也推出了Android Data Binding,那么什么是Data Binding?其名曰数据绑定,使用它我们可以轻松实现MVVM(模型-视图-视图模型)模式,来实现应用之间数据与视图的分离、视图与业务逻辑的分离、数据与业务逻辑的分离,从而达到低耦合、可重用性、易测试性等好处,那么我们首先先来看看什么是MV

MVVM 设计模式:构建高效且可维护的前端应用

在现代前端开发中,随着应用规模的不断扩大和复杂性的增加,采用合适的设计模式变得尤为重要。MVVM(Model-View-ViewModel)作为一种流行的设计模式,它通过分离业务逻辑和用户界面,提高了代码的可维护性和可测试性。本文将详细介绍MVVM的核心概念、优势以及如何在前端项目中实现MVVM。 什么是MVVM? MVVM是一种软件设计模式,用于组织和分离用户界面(UI)的各个部分。它由三个

mvp,mvc和mvvm的区别

MVC , MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式。以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解。现在一边查资料,并结合自己的理解,来谈一下对于这三种模式思想的理解,以及它们的区别。欢迎各位高手拍砖。 阅读目录: 复制代码 代码如下: 一. MVC , MVP, MVVM诞生的需求?