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基本相当于业务层+持久层

  • 相关阅读:
    关于32位操作系统和64位操作系统对InstallShield打包的影响
    NEWS: Symantec宣布Wise Package Studio将终止
    InstallShield 2012新功能试用(2) 调用MsiGetProperty等MSI API发生变化
    Basic INFO 在命令行Build InstallShield安装包工程获得压缩安装包
    NEWS InstallShield 2012 Service Pack 1发布
    Basic INFO InstallShield Basic MSI工程中如何在SetupCompleteSuccess界面中启动Readme
    Basic INFO InstallShield的脚本编辑器中如何显示代码行号
    Basic INFO 关于在InstallShield制作的安装包界面中删除InstallShield文字的厂商回复
    Basic INFO InstallShield工程中如何让产品的快捷方式名称始终与产品名保持一致
    Basic INFO: 创建隐藏文件夹
  • 原文地址:https://www.cnblogs.com/progor/p/9456983.html
Copyright © 2011-2022 走看看