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原生系统。
到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原生系统。
相关文章推荐
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- MVC---Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android架构之MVC,MVP与MVVM
- android MVC/MVP/MVVM架构对比
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM经验谈
- Android App的三种架构模式MVC,MVP和MVVM
- 《Android源码设计模式》读书笔记 (25) 第25章 Android架构之MVC,MVP,MVVM
- Android App的设计架构:MVC,MVP,MVVM
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android架构学习MVC、MVP、MVVM(二)
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈