MVC:
MVC即模型 - 视图 - 控制器(Model - View - Controller),是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已广泛应用于用户交互应用程序中。具有低耦合性、高重用性、可维护性等优点,使得原本复杂的代码与界面的交互变得简单、清晰。
- Model:数据模型,负责储存、定义、操作数据。
- View:视图,实现UI、展示数据、人机交互。
- Controller:控制器,负责协调Model和View(Model和View不直接通信),将Model中数据传递到View中展示,将View中人机交互后的数据传递到Model中储存修改。
MVVM:
MVVM即模型 - 视图 - 视图模型(Model - View - ViewModel),演变而来的一种新型架构,ViewModel将Controller的业务逻辑和页面逻辑等剥离出来,减小Controller的职责和复杂度,使不同层级的职责更加明确,耦合性更低,代码的阅读性、重用性、可维护性更高。
相比起MVC,MVVM多了一个ViewModel,即视图模型,对视图展示数据进行处理,接受Controller的事件命令请求及处理相关数据,之后将数据处理好交给Controller展示到View上。数据层可以复用,便于封装和重用。