赞
踩
MVC, 即Model-View-Controller, 基于页面逻辑的修改要多于业务逻辑, 分离两种逻辑减少类代码的修改
根据MVC架构, View和Controller都会依赖于Model, View显示Model数据, Controller更新Model数据. Model从项目中分离后, 独立于UI, 允许测试. 更新Model方式的不同, 把MVC架构分为被动(Passive)模式和主动(Active)模式.
项目体量较小,维护频率不高的应用
MVP属于MVC的演化版本,目的是让Model和View完全解耦
项目如果过于庞大,且需要频繁对于VIEW进行调整或者变更的项目不适用于此模式常规的中小型应用适合于当前业务需求
1.解耦,区别于MVC不会产生巨量代码,区别于MVP不会产生大量接口
2.职责更加明确,在mvp模式中,p需要持有V的引用,才能去刷新UI,在MVVM模式中,View和Model使用databingding进行双向绑定,一方改变会直接通知另外一方,使得viewModel能专注于业务逻辑的处理,而不需要去关心UI刷新
MVVM是一种架构模式,DataBinding是一个实现数据和UI绑定的框架,是实现MVVM模式的工具
优点:
1.使得M,V,VM的解耦更加彻底,在mvp模式中,p需要持有V的引用,才能去刷新UI,在MVVM模式中,View和Model使用databingding进行双向绑定,一方改变会直接通知另外一方,使得viewModel能专注于业务逻辑的处理,而不需要去关心UI刷新
2.不会像MVC一样导致Activity中代码量巨大,也不会像MVP一样出现大量的View接口(Presente与View是通过接口进行交互的)。项目结构更加低耦合。
缺点:
1.数据绑定使得Bug很难被调试
2.一个大的模块中,model也会很大,虽然使用方便了也很容易保证了数据的一致性,但是长期持有,不释放内存,就造成了花费更多的内存
3.数据双向绑定不利于代码重用。客户端开发最常用的重用时View,但是数据双向绑定技术,让你在一个View都绑定了一个model,不同模块的model都不同,那就不能简单重用View了
业务处理逻辑大多数在后端的情况下前端只要做展示而不需要做大量的业务处理的项目
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。