Android-UI层的三种框架模式-MVC、MVP、MVVM
一 MVC框架:
(1)基本定义:MVC框架全名是指Model,View,Controller,是模型(Model)---视图(View)---控制器(Controller),是一种业务逻辑,数据,界面显示分离的方法组织代码,将业务逻辑聚焦到一个部件里面,在改进和个性化定制界面以及与用户交互的同时,不需要重新写业务逻辑。
(2)框架与设计模式的区别:框架通常是指代码重用,而设计模式是设计重用,架构是介于两者之间,部分代码重用,部分设计重用,有时分析也重用。设计模式是比框架更小的元素,一个框架中通常含有一个或者多个设计模式。设计模式是对在某种环境中反复出现的问题以及解决问题的方案的描述。常用的UI框架有MVC,MVT,MVVM。
(3)核心:应用解决用户的问题总是围绕四个核心来进行,分别是界面(View),事件(Action),业务(business ),数据(data)。
(4)图形展示:
MVC的一般流程是这样的:View(界面)触发事件-->Controller(业务)处理了业务-- >Model(模型)然后触发了数据处理-->结果返回到Controller-- >Controller(带着数据)回到了View-->View更新j界面。
(5)MVC的另外表现方式:直接通过controller接受指令。
二 MVP框架:
(1)基本定义:MVP框架是由MVC衍生而来的,分别代表Model-View-Presenter;区别是:MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。
(2)两种MVP图形示例:
两幅图是不同的,但是对MVC的改进的思想却是一样的:切断的View和Model的联系,让View只和Presenter(原Controller)交互,减少在需求变化中需要维护的对象的数量。
三 MVVM模式:
(1)基本定义:Model-View-ViewModel(MVVM)。
第一种表现形式:
第二种表现形式:
(2)与MVP 、MVC框架之间的区别:
MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。
ViewModel大致上就是MVP的Presenter和MVC的Controller了,而View和ViewModel间没有了MVP的界面接口,而是直接交互,用数据“绑定”的形式让数据更新的事件不需要开发人员手动去编写特殊用例,而是自动地双向同步。数据绑定你可以认为是Observer模式或者是Publish/Subscribe模式,原理都是为了用一种统一的集中的方式实现频繁需要被实现的数据更新问题。
比起MVP,MVVM不仅简化了业务与界面的依赖关系,还优化了数据频繁更新的解决方案,甚至可以说提供了一种有效的解决模式。
参考文章致谢:
1 http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
2 http://www.zhihu.com/question/20148405
目录(?)[-]
- Android-UI层的三种框架模式-MVCMVPMVVM
- 一 MVC框架
- 二 MVP框架
- 三 MVVM模式
Android-UI层的三种框架模式-MVC、MVP、MVVM
一 MVC框架:
(1)基本定义:MVC框架全名是指Model,View,Controller,是模型(Model)---视图(View)---控制器(Controller),是一种业务逻辑,数据,界面显示分离的方法组织代码,将业务逻辑聚焦到一个部件里面,在改进和个性化定制界面以及与用户交互的同时,不需要重新写业务逻辑。
(2)框架与设计模式的区别:框架通常是指代码重用,而设计模式是设计重用,架构是介于两者之间,部分代码重用,部分设计重用,有时分析也重用。设计模式是比框架更小的元素,一个框架中通常含有一个或者多个设计模式。设计模式是对在某种环境中反复出现的问题以及解决问题的方案的描述。常用的UI框架有MVC,MVT,MVVM。
(3)核心:应用解决用户的问题总是围绕四个核心来进行,分别是界面(View),事件(Action),业务(business ),数据(data)。
(4)图形展示:
MVC的一般流程是这样的:View(界面)触发事件-->Controller(业务)处理了业务-- >Model(模型)然后触发了数据处理-->结果返回到Controller-- >Controller(带着数据)回到了View-->View更新j界面。
(5)MVC的另外表现方式:直接通过controller接受指令。
二 MVP框架:
(1)基本定义:MVP框架是由MVC衍生而来的,分别代表Model-View-Presenter;区别是:MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。
(2)两种MVP图形示例:
两幅图是不同的,但是对MVC的改进的思想却是一样的:切断的View和Model的联系,让View只和Presenter(原Controller)交互,减少在需求变化中需要维护的对象的数量。
三 MVVM模式:
(1)基本定义:Model-View-ViewModel(MVVM)。
第一种表现形式:
第二种表现形式:
(2)与MVP 、MVC框架之间的区别:
MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。
ViewModel大致上就是MVP的Presenter和MVC的Controller了,而View和ViewModel间没有了MVP的界面接口,而是直接交互,用数据“绑定”的形式让数据更新的事件不需要开发人员手动去编写特殊用例,而是自动地双向同步。数据绑定你可以认为是Observer模式或者是Publish/Subscribe模式,原理都是为了用一种统一的集中的方式实现频繁需要被实现的数据更新问题。
比起MVP,MVVM不仅简化了业务与界面的依赖关系,还优化了数据频繁更新的解决方案,甚至可以说提供了一种有效的解决模式。
参考文章致谢:
1 http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
2 http://www.zhihu.com/question/20148405