MVC三层架构

it2025-04-09  24

什么是MVC

MVC其实是Model View Controller(模型-视图-控制器)的缩写。他是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多业务逻辑聚集到一个部件里面,当修改界面和用户交互的时候就不需要重写业务逻辑,以降低代码的复杂度以及编码的难度。

View视图是指用户可见交互界面。在视图中并没有真正的数据处理,它只是作为输出数据和用户操纵数据的一种方式。

Model模型是指模型表示业务逻辑。在MVC的三个部件中,模型拥有最多的数据处理任务。模型中的数据返回是无格式的,因此一个模型能够为多个视图提供数据,增强了模型的复用性,从而减少了代码的重复性。

Controller控制器是指控制器调用模型和视图去完成用户的需求,控制器本身不输出任何东西和进行任何数据处理。控制器通过接收请求并决定模型的调用去处理请求,然后决定显示数据的视图。 基本的流程是,用户在操作界面进行人机交互,然后将请求发送至控制器,控制器据此将请求发送到相应的模型,模型与数据库交互,进行增删改查等操作。完成后,根据业务逻辑选择相应的视图进行显示,此时用户的需求被满足。

举例

下面通过代码来简单解释一下:

Login.html Login.java

Struts.xml 用户首先在Login.html中输入用户名和密码,点击登陆,此时根据action的路径,在struts.xml中找到对应的Login,然后根据对应的class的路径进入相应的login.Java,在这里判断之后,返回success或error,然后根据struts.xml中的result值,指向相应的jsp页面。这就是一次控制器-模型-视图的处理。

三层架构与MVC的区别

三层架构是指由显示层,业务逻辑层和数据访问层组成的一种架构。而MVC则是由视图、模型和控制器组成的架构。显示层和视图没有太大的区别,模型的功能用于表示业务逻辑,同时也与数据库交互,而业务逻辑层则只负责业务逻辑,与数据库交互交给了数据访问层。如此相比,MVC还多了一个控制器的功能,他的功能是为了将视图和模型组织在一起,并在视图和模型之间传输数据。

MVC的优点

MVC可以将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。

使用MVC的注意事项

控制器中不应该含有过多的业务逻辑。

因为业务逻辑代码需要经常重复使用。如果它写在控制器当中,重用只能以它为父级继承他的代码。但这么做会带来一个巨大的后果,违背了面向对象设计原则:接口隔离(就是程序不要继承不需要的事物,因为一般的控制器中除了需要复用的业务逻辑外,还有各种组织连接代码,会导致无用的继承)。 这并不代表所有的继承都是无用的,继承主要用于同一类事物的时候,而不是两个不一样的事物有部分相关。对于那些情况,程序员要遵循“少用继承,多用组合”的原则。

此文章仅为自己的学习记录及知识整理,以下为参考文献。

什么是MVC 深入理解MVC

最新回复(0)