本节选自《精通Python设计模式》【荷】Sakis Kasampalis
关注点分离(Separation of Concerns, SoC)原则是软件工程相关的设计原则之一,SoC原则背后的思想是将一个应用切分为不同的部分,每个部分解决一个单独的关注点。分层设计中的层次(数据访问层,业务逻辑层和表示层等)即是关注点的例子。使用SoC原则能简化软件应用的开发和维护
模型-视图-控制器(Model-view-Controller,MVC)模式是应用到面向对象编程的Soc原则。模式的名称来源于用来切分软件的三个主要部分。即模型部分,视图部分和控制器部分。MVC模式被认为是一种架构模式而不是一种设计模式。
模型部分是核心部分,代表着应用的信息本源,包含和管理业务逻辑、数据、状态以及应用的规则。视图是模型的可视化表现。视图的例子有,计算机图形用户界面、计算机终端的文本输出、智能手机的应用图形界面、Pdf文档等。视图只是展示数据,并不处理数据。控制器控制模型和视图之间的连接。模型和视图的所有通信都通过控制器进行:
大致过程如下
1 用户通过单击某个按钮触发一个视图
2 视图把用户操作告知控制器
3 控制器处理用户输入,并与模型交互
4 模型执行所有必要的校验和状态改变,并通知控制器该做什么
5 控制器按照模型给出的指示,指导视图适当地进行更新和显示
Django是一个MVC框架,但它使用了不同命名方式。Django中控制器被称为视图。视图被称为模板。模型的称呼没变。因此Django中的框架变为模型-模板-视图框架。Django的设计者称:视图是描述哪些数据对用户可见。因此,Django把它对应的一个特定url的python回调函数称为视图。Django中的模板用于把内容和展示分离&#x