MVC框架模式详解

在学习MVC时,上网查了很多资料。很多博客给了自己的看法,但是个人觉得一些博主的看法有些偏差,下面仅说一下我的理解,欢迎大家批评指正。

MVC从产生到现在已经经历了很久的时间,其概念也在日新月异的发展中变化了很多,而客户端与服务端的MVC也不一样,本文只给出现在web的MVC解释。

MVC:Model View Controller的缩写,是一种框架模式,而非设计模式。它的主要作用是:提高代码复用性,使代码易扩展、易于多人同时开发。下面对各组件进行详细解释

M:模型,主要对应用中所用到的数据、知识、业务逻辑进行封装。有对数据库直接访问的权利,是有最多业务逻辑的地方,一个模型可以对应多个视图。视图和控制器不用关心模型如何从数据库中获取数据。模型不用关心它如何被操作、被显示以及被谁操作,但是其需要有一种刷新机制来公布其中数据的变化。为了实现此机制,那些用于监视此模型的视图,必须事先在此模型上进行注册,从而视图可以了解在数据模型上发生的变化。

C:控制器,目的是为了M与V的去耦(注意此目的!注意此目的!注意此目的!重要的事情说三遍。所以对实现应用的功能,控制器不是必须的,只是为了分离模型与视图加了控制器。个人觉得这个目的是此框架模式的核心,M与V是不能直接交互的,需要C这个桥梁来进行间接交互)。当模型数据发生变化时,通知视图进行刷新、改变。当有交互时,处理事件并作出相应(响应用户操作,操作模型修改数据)。

V:视图,用于实现数据模型有目的的展现。

其过程:

a)、个人认为其过程如下图:

b)、有人这样解释此过程:

此时,视图不再监听模型,而是控制器监听模型。两种都是正确的,可能是前后端的区别,这一点有待后期写demo分析之后再做判断。

总结:

MVC框架模式的优势在于:

a)一个模型可以对应多个视图。对一个应用可以有不同的展现方式

b)M、V、C相互分离、独立,代码扩展性、复用性、移植性较高

推荐大家看一下:iOS学习3:设计模式之Model-View-ControllerMVC模式(Model模型 View视图 Controller控制器以及iOS设计模式——MVC(Model-View-Controller)

此条目发表在vue分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注