一、MVC框架(后端的分层开发概念):
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
二、MVVM框架(前端视图层的概念)
MVVM是Model-View-ViewModel-Model的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。
三、MVC和MVVM的优点与弊端
优点:MVC
易懂: 简单易懂,我想用这四个字来形容MVC在合适不过了。
层次分明: 共三个部分,各自完成各自的内容,在有Controller将大家协调在一起。
弊端:MVC
量级重 : ViewController处理过多的业务逻辑如协调模型和视图之间的所有交互,导致量级重,维护成本很高。过轻的Model对象:在实践中往往大家都把Model的量级设计的非常轻,总容易当做数据模型来对待。至于很开发者所说的无法添加的网络逻辑,我个人认为完全可以设计添加到Model中。但要注意根据需求来选择“同步或异步”。
优点: MVVM
低耦合: View可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View 上。
可重用性: 可以把一些视图逻辑放在一个ViewModel里面,让很多View重用这段视图逻辑。
弊端:MVVM
数据绑定后使得Bug很难被调试。
数据绑定和数据转化需要花费更多的内存成本。