MVC 框架

Posted by 小炒肉 on January 1, 2000

Go Web 编程

设计一个程序的结构,有一门专门的学问,叫做”架构模式”(architectural pattern),属于编程的方法论。

MVC 框架

  • MVC模式就是架构模式的一种。

  • MVC - 这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。

    • Model(模型)

      • Model 是Web应用中的最底层 用于处理数据逻辑的部分,包括Service层和Dao层。

      • Service层用于和数据库联动,放置业务逻辑代码,处理数据库的增删改查。

      • Dao层用于放各种接口,以备调用。

    • View(视图)

      • View 是Web应用中的第一层 用于处理响应给客户的页面的部分,例如我们写的html静态页面,jsp动态页面,这些最终响应给浏览器的页面都是视图, 通常视图是依据模型数据来创建的。
    • Controller(控制)

      • Controller 在Web应用中的中间一层,简而言之,就是Servlet。(实际上一个方法就相当于一个对应的Servlet)。
  • 这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,就实现了 模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。

graph TD;
  id1(浏览器)
  id2((Controller))
  id3((View))
  id4((Model))
  id5(DataBase)
  id1--Request-->id2;
  id3--response-->id1;
  id2--数据驱动-->id3; 
  id2--数据交互-->id4;
  id4--数据操作-->id5;
  id5--数据操作-->id4;
  id4--数据交互-->id2;

Web经典三层架构

  • 表现层,UI,User Interface:

    • 主要接受用户的请求和把相应的页面响应给用户浏览器, 页面 对应MVC中的视图(View), 逻辑 对应MVC中的控制器(Controller),即Servlet服务器。
  • 业务逻辑层,BLL,Business Logic Layer:

    • 对应MVC中模型(Model)中的Service层,与数据库联动处理增删改查。
  • 数据访问层/持久层,DAL,Data Access Layer:

    • 对应MVC中模型(Model)中的Dao层,提供接口支持。