首页 > 代码库 > 【Java架构学习】MVC和三层架构的区别
【Java架构学习】MVC和三层架构的区别
其实这篇博客的重点不是介绍三层架构,是重点介绍MVC并帮助理解MVC。学了这么久MVC发现对它的理解还存在很多误区,今天就来好好整理一下MVC。
MVC即Model-View-Controller,其中M-V-C各代表什么,我想即使我不一一列举大家也都了然于胸了。因为太熟悉了,就像我们当初学习三层架构一样,时间长了U-B-D各代表什么含义信手拈来。但是我想说的是,我们是否对MVC的认识也只是停留在表面?
哎呀,还是说一下吧,不说心里难受。总所周知,在MVC中,代表的具体含义如下:
M——Model,模型,处理应用程序中数据逻辑部分
V——View,视图,是数据显示部分
C——Controller,控制器,是处理用户交互部分,负责从视图中读取数据并向模型发送数据等。
对MVC有个大体的认识之后,现在,要分析这三部分的内容了。这是这篇文章的重点哦。首先和三层架构比较一下。在网上查过很多资料,很多人认为“MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层”。但是我的理解可能有些不一样。三层架构相对而言权责界限分明,分工明确,相互不过问超出各自职权的事,中间靠实体进行交互。
而我理解的MVC架构模式:
V是界面显示,相当于三层架构的U层;
M层模型层,相当于三层架构中的B层、D层和实体层,因为我理解M层负责的是和数据库交互和业务逻辑部分;
C层控制层,负责的是从浏览器中获取请求,然后按照相应的要求将用户洗洗脑传递给模型,告诉模型要做什么。
上面这张图也许会帮助我们更好的理解MVC。除此之外,有人提过,说C层没有任何业务逻辑。这一点我也有不同的意见,这就要看你较不较真了,要是真较真儿,C层和M层交互,M层负责主要的业务逻辑处理,相互要交互,C层就要知道这些逻辑,所以不可避免的C层也需要有一小部分的业务逻辑做支持。但是,你要清楚的是,主要的业务逻辑部分还是在M层处理的。所以如果不细揪的话,就可以把C层控制层理解成获取请求,将用户输入的指令和数据传递给M层进行处理;M层负责业务处理和进行数据库交互;V层则根据业务逻辑选择不同的视图,负责显示出来。
可能我认识的MVC跟网上出现的观点不太一样,至于孰对孰错,这个待以后继续深入学习后再做评判。下篇文章我将继续MVC的内容,讨论一下Model1和Model2,敬请期待吧!
【Java架构学习】MVC和三层架构的区别