【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,敬请期待吧!

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
MVC架构模式和三层架构都是常用的软件架构设计模式,用于分离不同层次的代码功能和职责。 MVC架构模式是一种软件设计模式,包括三个基本组件:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据逻辑,视图负责用户界面展示,控制器负责处理用户输入和业务逻辑。MVC模式通过将不同的功能分离到不同的组件中,实现了代码的解耦和可维护性的提高。 三层架构是一种软件系统的分层设计模式,通常包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。表现层负责用户界面的展示和交互,业务逻辑层负责处理业务逻辑和数据处理,数据访问层负责与数据库进行数据交互。三层架构通过将不同层次的功能分离,实现了代码的复用和可扩展性的提高。 MVC架构模式和三层架构有相似之处,都是通过分层的方式将不同功能和职责解耦,提高代码的可维护性和可扩展性。同时,三层架构可以看作是实现MVC模式的一种方式,将不同层次的代码按照MVC模式的要求进行分组和编写,以便于整体架构的灵活性和可替换性。 总结来说,MVC架构模式和三层架构都是常用的软件架构设计模式,通过分层的方式将不同功能和职责解耦,提高代码的可维护性和可扩展性。三层架构可以看作是实现MVC模式的一种方式,将不同层次的代码按照MVC模式的要求进行分组和编写。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MVC模式和三层架构](https://blog.csdn.net/bb_111/article/details/127279845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Java MVC模式和三层架构](https://blog.csdn.net/jjw_zyfx/article/details/127703245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值