什么是 MVC

2017-09-08  本文已影响0人  七_五

这里的MVC 是一种设计模式,它将应用划分为 3 个部分 :

数据(model)、展现层(view)和用户交互层(control)。

相信大家都知道在不用任何库和框架写原生的前端代码的时候,很多大牛都提倡将HTML(结构层)、CSS(表现层)、JavaScript(交互层)分离开来,目的是更好的维护代码。虽然我们这里的MVC模式和上面的前端代码分层逻辑完全不一样,但是小编觉得其实从某种宏观的角度来它们的本质都是为了更好的维护代码(解耦、复用...),让其他小伙伴更容易阅读。

1.从聊天的例子说起


这里我们举一个网页版的微信发消息的例子说起,当我们给别人发消息的时候到展示是这样的:

下面我们将上面的聊天例子简单的总结下就是这样的一个过程

我们可以不用类库或者框架就可以实现这种MVC的架构模式,重点是需要将MVC的每一个部分按照职能划分清晰,使其保持良好的解耦。我们可以对每一个部分进行独立的开发、测试和维护

2、模型(model)


模型是用来存放所有应用数据的对象的。如当我们有一个User模型,用来存放用户的列表、他们的属性以及所有与模型有关的逻辑。当控制器(control)从服务器中抓取数据或创建新的记录时,它就会将数据包装成模型实例

模型不必知道视图和控制器的细节,模型只需要包含数据及直接和这些数据相关的逻辑,其他任何的事件处理代码、视图模板、以及和模型无关的逻辑都应该隔离在模型之外,将模型和视图代码混淆在一起是违反MVC的设计原则的。

3、视图


视图层是展示给用户的,用户可与之产生交互。在JavaScript应用中,视图大多由HTML、CSS、JavaScript模板组成。除了简单的条件语句外,视图不应当包含任何其他逻辑。

实际上,和模板类似,视图也可以从其他的应用中解耦出来。视图不必去知晓模型和控制器的所有细节,它们是相互独立的。

4、控制器

控制器作为模型和视图之间的纽带。

5、结合

最后我们看上面描述的MVC模型图

MVC用户交互模型

参考链接:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
《基于MVC的JavaScript webfu富应用开发》

上一篇下一篇

猜你喜欢

热点阅读