
开发中我们常听说MVC, MVP, MVVM这些好像很高端的名词, 那么你了解他实际上是什么东西吗? 下面谈谈对它们的理解.
1. MVC
其实上面所提的三者都是一种软件架构模式(或者说是一种概念), 其中MVC的历史最为长远.
MVC模式可以分成以下三种, 就是模型(module), 界面(View), 控制器(controller). 三者之间的关系.

MVC的好处在于
- 视图控制模型分离降低耦合性
- 提高代码重用性和可维护性
- 因为是单向模块化, 不同层各施其职,互不干涉
有优点再说说缺点:
- 清晰的构架以代码的复杂性为代价, 对小项目优可能反而降低开发效率.
Controller
层代码难以复用的, 到后面会变得臃肿.- 运行效率相对较低, 太过于复杂反而不太适合中小型项目
MVVM
MVVM(Module-View-ViewModule)的出现主要是为了解决在开发过程中Controller
越来越庞大的问题, 它将Controller
替换成了ViewModule
, 同时改变了通讯模式, 这是MVVM相对于MVC改进的核心思想.

其中MVVM的显著特点就是双向绑定. view
的变动会自动更新到Model
中. 其中当下很流行的Vue框架就是采用了这个模式. 下图的就能很清晰的看的懂ViewModel是如何做的.
