MVC MVP和MVVM

MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。

这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。

1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。

2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。

3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口,供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,方便了维护和升级。


如果将MVC模式解释成"外观"、"机制"和"功能/数据"这三层结构,举个例子。

比如一家商场,完全可以分成三部分。一部分是仓库,负责提供商品,这是"功能层"(或者"数据层");另一部分是零售铺面,负责销售商品,这是它的"外观层";两者之间就是"机制层",包括柜台和仓库之间一切互动的机制。

这样区分以后,这个商场的结构就变得非常清楚,可以针对不同的层进行优化,提高效率。


MVP

MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。


1. 各部分之间的通信,都是双向的。


2. View 与 Model 不发生联系,都通过 Presenter 传递。


3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。




MVVM




唯一的区别是,它采用双向绑定(data-binding):View(视图)的变动,自动反映在 ViewModel(控制层),反之亦然。Angular 和 Ember 都采用这种模式。


猜你喜欢

转载自blog.csdn.net/t1753867136/article/details/80276336