您的位置:首页 > 运维架构 > 网站架构

android是mvc还是mvvm架构?

2017-01-08 13:17 309 查看
我们知道现在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原生系统。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: