mvc模式
模型-视图-控制器(MVC)是一种软件架构模式(设计模式)
MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
Model的职责
数据、行为、方法是Model的主要内容。
实际工作中,Model是MVC中代码量最大。
Model是逻辑最复杂的地方,因为应用的业务逻辑也要在这里表示。
注意将Model与Controller区分开。
Model是处理业务方面的逻辑,Controller只是简单的协调Model和View之间的关系。
只要是与业务有关的,就该放在Model里面。
数据校验、public常量和变量,都应该放在model层,
也就是说,有可能被重复使用的属性或方法,都应该放在model层,一次定义,到处使用。
Model不应该访问request、session以及其他环境数据,这些应该由Controller注入。
好的设计,应该是胖Model,瘦Controller。
View的职责
View就是负责显示。
一切与显示界面无关的东西,都不应该出现在view里面。
View 中一般不应该出现复杂的判断语句,以及复杂的运算过程。
可以有简单的循环语句、格式化语句。
对于PHP的Web应用而言,HTML是View中的主要内容。
View应该从不调用Model的写方法。
也就是说,View只从Model中读取数据,但不改写Model。
所以我们说,View和Model是老死不相往来的。
而且,View中不直接访问
G
E
T
和
_GET和
GET和_POST,应该由Controller传递给View。
此外,View一般没有任何准备数据处理的内容,如查询数据库等。
这些一般是放在Controller里面,并以变量的形式传给视图。
也就是说,视图里面要用到的数据,就是一个变量。
Controller的职责
控制器Controller - 负责响应用户请求、管理模型和视图中的通信
对于Controller,主要是响应用户请求,决定使用什么视图,需要准备什么数据用来显示。
因此,对于request的访问代码,应该放在Controller里面,比如
G
E
T
、
_GET、
GET、_POST等。
Controller应该仅限于获取用户请求数据,不应该对数据有任何操作或预处理,这应该放在 Model 里面。
对于数据的写操作,要调用Model类的方法完成。
对于用户请求的响应,要调用视图渲染。
此外,一般不要有HTML代码等其他表现层的东西,这应该是属于View的内容。