浅尝MVVM
Posted grace_dl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅尝MVVM相关的知识,希望对你有一定的参考价值。
对于安卓开发,设计鼻祖MVC的思想,让Actvity承担的责任更重,造成xml功能弱小,Actvity累死。小型项目可以拿来试试,中大型项目不建议考虑,不然几千几万行的Actvity会让你发狂。
于是,顺势而为,MVP诞生。将xml和Activty都划分到view层,model依然作为业务逻辑和实体模型的载体。这个时候Presenter横空出世。作为view和Model之间的交互。但是代码量大大增加,虽然降低了耦合,可复用扩展性强,但是对于码农来说,功过相抵吧。适合用于中小型项目。
最新一直炒的火热的MVVM思想站出来了,据说是要解除一些诟病,拯救世界。下面就举一个MVVM的例子来看一下如何拯救世界:
MainActvity
public class MainActivity extends Activity
@Override
protected 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" />
<variable
name="user"
type="User" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@String.valueOf(user.id)" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@user.account" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@user.pwd" />
</LinearLayout>
</layout>
看起来似乎简洁了很多,可以有很多时间去约会了,但是,故事并未结束。
那些身先士卒的英雄向我们证明了,有的时候数据获取不到,有的时候报错难以排查。当然,详细的坑,还需要发烧君前去试探。
虽然前途漫漫,危险重重,相信Oracle大君会排除万难,为广大的码农填平这些坑。
PS:读出了Spring依赖注入的味道。。。
以上是关于浅尝MVVM的主要内容,如果未能解决你的问题,请参考以下文章
浅尝Spring注解开发_简单理解BeanFactoryPostProcessorBeanDefinitionRegistryPostProcessorApplicationListener