android是mvc还是mvvm架构?

来源:互联网 发布:农行软件开发中心待遇 编辑:程序博客网 时间:2024/06/05 04:30

我们知道现在android里面很多是mvc的思想,页面和数据分离,但是我们也看到很多三方框架用到mvvm的思想,比如robebinding ,为什么android的主流的还是mvc思想不是mvvm。

到MVVM,就必须要提到data binding。

举个例子:当我的一个页面,要呈现一组数据时,可能我会有一个div当成容器(WPF中是Grid或者其他的Panel),同时有一个Listview,还有一个控件来显示当一些提示信息。

这时,Model层应该提供数据,也就是拿到所有的list中的元素的相关信息。
View负责显示各个元素。由于有不同元素个数的时候,提示信息可能不一样,listview的内容也不一样。这些内容可以通过code behind根据model曾提供的数据来更改数据。

这种方法在view中的控件个数不多时有用。但是当控件个数变多的时候,很容易有所遗漏。这时data binding就格外重要。比如visible等属性可以binding到一些由viewmodel曾提供的字段上。这样一旦数据更新,控件的相关属性也会同步更新。

那么ViewModel层需要承担的就是把model层提供的数据封装成可以被binding的数据字段。

MVVM的好处就是开发简单,弊端就是效率慢。

上面的观点是知乎里一位大牛说的,因为android里面每个界面的数据、控件个数不是很多,但是由于cpu的限制,开发很注重效率,因此mvc框架更适合android原生系统。


0 0
原创粉丝点击