zoukankan      html  css  js  c++  java
  • MVC框架与三层架构

    MVC框架

    介绍:

    • MVC全名Model View Controller

      • Model:模型的意思,代表业务模型
      • View:视图的意思,代表用户界面
      • Controller:控制器的意思,控制器接受用户的输入并调用模型和视图去完成用户的需求。
    • MVC把各个层次需要关注的内容分离了开来。

      • MVC将负责显示数据的层次称为视图。View视图主要负责向用户显示数据。它负责与用户交互。
      • 视图负责与用户进行交互,用户可以在视图中进行数据交互,视图中接收到数据之后,控制器负责封装数据,根据业务来调用不同的业务模型去处理;模型接受到控制器发来的数据后,处理业务。

    例子阐述:

    1. 用户在web页面中输入了账户和密码来进行余额查询操作(View)
    2. 视图封装数据传递给控制器,控制器识别出这是一个“查询余额”的业务请求。(View->Controller)
    3. 控制器识别出这是一个“查询余额”的业务请求之后,控制器继续封装数据,调用“查询余额”的业务模型来处理(Controller->Model)
    4. 业务模型接受到控制器传来的数据,进行数据库交互,查出余额,返回结果给视图(Model通常会把数据封装到对象当中),视图将业务模型返回过来的数据显示出来。(Model->View)【这里有时候需要更改视图的界面,比如你点击查所有用户,会跳转到一个新视图用来显示用户列表。这里的视图改变依赖于视图解析器 ,视图解析器会根据结果来进行不同的视图选择,有时候这个结果是模型给的(动态页面),有时候是控制器给的(静态页面)。】

    注意:

    • 视图虽然是一个“交互界面”,但它很多时候都是基于对象模型来创建的,比如一个注册界面,很多时候注册页面的文本框的name属性都要与业务模型中的数据进行对应,这样可以很轻易地将数据封装起来。

    三层结构:

    介绍:

    应用程序架构可以分为三个层次:表现层、业务层、持久层。

    • 表现层:(顶层)表现层负责用户界面的显示,并且负责帮助用户向业务层提交业务逻辑处理请求,通常还负责将业务层发来的处理结果显示到界面中。
    • 业务层:(中间层)业务层负责处理业务逻辑,它可以根据不同的业务来调用不同的代码来处理。
    • 持久层:(底层)持久层负责向一个或多个数据库中读取或写入数据。通常用来给业务层的业务逻辑处理提供数据。这个层次通常必须包括业务实体模型。

    例子阐述:

    以一个例子来谈三个层次的作用:

    • 用户访问了某个网站的页面,这个页面上有各种各样的功能(如果只是静态的页面的话,还不算表现层)
    • 用户点击某个按钮,向服务器提交请求(表现层->业务层)
    • 服务器接收到请求,分析请求,调用对应的逻辑处理程序来处理请求(业务层)
    • 如果用户发起的业务请求是一个与数据库相关的业务,对应的逻辑处理程序调用数据库交互逻辑来读取/写入数据(业务层->持久层)
    • 数据库交互逻辑通过程序的配置信息来与数据库进行交互,读取/写入数据后,返回结果。(持久层->业务层)【如果这个数据库交互逻辑处于某个业务处理逻辑当中,那么这时候就不算持久层,每个层次的功能都是独立的。】
    • 业务逻辑处理程序接收到数据库交互逻辑程序返回的数据,进行数据处理,然后返回到用户的界面上。(业务层->表现层)
    • 服务器根据请求将数据显示到网页中,然后将这个网页返回给用户浏览器。(表现层)

    注意:

    • 每个层次的职能应该是独立的,否则无法独立成一个层次。

    • 通常来说,表现层不应该存在业务逻辑处理的代码,它通常只用来显示动态数据。


    MVC与三层架构的区别

    • MVC与三层架构并不等同,三层架构的三个层次并不与MVC对应
    • 如果要MVC与三层架构做对比的话,MVC就像一个中间件,它囊括了三层架构中业务层的大部分功能,但也涉及表现层(View视图负责数据的显示)和持久层(持久层中的实体类与Model模型,但Model比实体类要多出数据库交互的功能)
    • MVC中Model基本相当于业务层+持久层

  • 相关阅读:
    接口报错mixed content blocked
    重拾单片机
    部署ajax服务-支持jsonp
    linkageSystem--串口通信、socket.io
    node安装问题
    jshint之对!的检验
    node之websocket
    调试node服务器-过程
    oracle取某字符串字段的后4位
    vmware 共享文件夹
  • 原文地址:https://www.cnblogs.com/progor/p/9456983.html
Copyright © 2011-2022 走看看