MVC-MVVM-三层架构


1. MVC

1.1 什么是MVC*

这里面说的MVC其实是一个模型(也可说成是开发模式),我们根据这个模型设计程序。通俗的说就是一个模子。

MVC(Model-View-Controler),M是指业务模型,V是指用户界面,C则是控制器:

(1)视图(View):负责界面的显示,以及与用户的交互功能,例如表单、网页等。

(2)控制器(Controller):可以理解为一个分发器,用来决定对于视图发来的请求,需要用哪一个模型来处理,以及处理完后需要跳回到哪一个视图。即用来连接视图和模型。

实际开发中,通常用控制器对客户端的请求数据进行封装(如将form表单发来的若干个表单字段值,封装到一个实体对象中),然后调用某一个模型来处理此请求,最后再转发请求(或重定向)到视图(或另一个控制器)。

(3)模型(Model):模型持有所有的数据、状态和程序逻辑。模型接受视图数据的请求,并返回最终的处理结果。

1.2 MVC的来源

它最初在Smalltalk中应用,主要思想是用面向对象的设计方法将用户界面设计与程序的业务逻辑分离开来.使用这种模式,可以开发出具有伸缩性、易于扩展、便于维护的软件系统.MVC主要由3个部分组成:模块(Model)、视图(View)和控制器(Controller),三者既分工又合作地完成系统的各项功能。

1.3 MVC是设计模式吗?

不是,正如上面所说,MVC其实是一个模型(也可说成是开发模式)。
设计模式的意思是为解决一系列相同问题成功经验的总结,例如java中有23种设计模式,常用的单例模式,值对象模式,工厂模式,简单工厂等,这些才是模式。
而模型适用于所有需要这个模子的地方。

1.4 service层,dao层属于MVC哪一层?

service层,dao层的区分属于三层架构的东西,在MVC中会将它们划成Model

1.5 前端的MVC

参见https://zhuanlan.zhihu.com/p/22943208

2. MVVM

Vue就是MVVM框架,MVVM中的M是模型,V是视图,VM是视图模型。而Vue实例就是VM将数据和视图进行绑定,双向绑定。
模型就是data数据 视图就是template模板 vm就是vue实例,将模板和数据联系起来

首先用原生的HTML css js 肯定也能做网站,但是用Vue框架就是因为它更便捷,更易维护。

例如原生一个文件里有一千行代码,但是使用Vue的话,就可以组件化开发。home.vue => search.vue ,方便维护。

3. 三层架构

3.1 什么是三层架构?

Web开发一般分成三层,指表示层(USL,User Show Layer)、业务逻辑层(BLL,Business Logic Layer)、数据访问层(DAL,Data Access Layer

业务逻辑层可能命名为:service层,数据访问层可能命名为:dao层

MVC本身与前后端无关,仅仅前端自己,也可以用MVVM来实现,像React、Vue都是这样的。
如果你是从整个服务角度宏观来看的话,MVC里面的M和C在后端,V在前端;MVVM中的M和VM在后端,V在前端(也有人认为VM不一定在后端,我倾向于VM和M的关系更紧密,实现也一般都在后端)

4.总结

MVC和MVVM是一类概念,他们都更关注视图层,三层架构则不同,关注表示层、业务逻辑层和数据访问层。

吊里吊气的的三层架构和MVC


文章作者: iamfugui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iamfugui !
评论
  目录