Python设计模式之MVC模式(9)

MVC模式:Model-View-Controller模式,实现业务逻辑和展现逻辑解藕。

1 介绍

MVC模式既是一种设计模式,也是软件架构模式。比如流行的django框架就是mvc(MTV)模式。Model层负责和数据库交互,View层负责展现逻辑,Controller层负责粘合Model和View层,将各个部分解耦,使代码更易扩展和维护。

模型—视图—控制器(Model-View-Controller,MVC)模式是应用到面向对象编程的Soc(关注点分离Separation of Concerns原则)原则。模式的名称来自用来切分软件应用的三个主要部分,即:模型部分、视图部分和控制器。目的在于分离输入(control),处理逻辑(model),输出格式(view)。

  • 视图:最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳,是模型的可视化表现。视图的例子有,计算机图形用户界面、计算机终端的文本输出、智能手机的应用图形界面、PDF文档、饼图和柱状图等。视图只是展示数据,并不处理数据。
  • 控制器:中间的一层,就是"控制层"(Controller),是模型与视图之间的链接/粘附。模型与视图之间的所有通信都通过控制器进行。它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果
  • 模型:最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。是核心的部分,代表着应用的信息本源,包含和管理(业务)逻辑、数据、状态以及应用的规则。

简单的理解:

  • 控制模块用于获取用户输入,并将模型与视图建立联系
  • 模型主要是从存储区获取数据
  • 视图用于展示给用户,从模型获取的数据

数据关系

  • View 接受用户交互请求
  • View 将请求转交给Controller
  • Controller 操作Model进行数据更新
  • 数据更新之后,Model通知View更新数据变化
  • View 更新变化数据

具体细节:

  控制模块:可以被看作是一个介于用户,处理(model),显示(view)之间的中间人。它是用户请求的入口,也是应用处理的入口。控制模块接受用户输入,解析,决定哪一个model和view参与处理,因此,它决定了针对用户请求,选择何种view和model。

  模型模块:处理业务的应用程序,model操作数据库,比如插入,更新,删除。每个模型会提供固定类型的数据给控制模块,另一方面,控制模块可以调用模型的不同方法处理数据,并将处理后的结果返回给视图模型

  视图模块:主要用来显示,通过控制模块获取模型模块处理后的数据,并进行格式化的显示。通过控制模块选择view并显示反馈给用户。view模型的选择是基于模型模块的l选择和用户配置等等。

主要目的:

  • 将数据和数据的展示隔离开来
  • 使类的维护和实现更加简单
  • 灵活地改变数据的存储和显示方式,两者都是独立的,因此可以灵活修改

2 适用场景

MVC是一个非常通用且大有用处的设计模式。实际上,所有流行的Web框架(Django、Rails 和Yii)和应用框架(iPhone SDK、Android和QT)都使用了MVC或者其变种,其变种包括模式—视图—适配器(Model-View-

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值