MVC是一种设计模式(Design pattern),也就是一种解决问题的思路和方法;
MVC是模型(Model), 视图(View), 控制器(Controller) 3个单词的缩写,几乎所有的web框架都是建立在MVC模式上。
模型(Model)指数据模型,主要是数据、业务逻辑和业务规则;开发初期最重要的任务,该部分的代码写的好,后面就可改的少,开发快速。
以下是Model的几个原则:
?视图(View)1. 数据、行为、方法是Model的主要内容;
?2. 实际工作中,Model是代码量最大、最复杂的地方,大量的业务逻辑都在这里表示
?3. Model提供的数据都是原始数据,也就是说不带任何表现层的代码,比如在输出的数据中添加html标签,这是view层的工作;但是Model是可以提供有结构的数据的:数组结构、队列结构、甚至其他的Model,这个不是表现层的格式,而是内存中的表现
?4. 与输出不同的是,输入是可以带有表现层格式的数据,比如文章的内容里可能带有html标签,Model一般都会这些输入数据进行过滤、验证、规范化等预处理。
?5. 注意与Controller分开,Model是处理业务方面的逻辑,Controller只是简单的协调Model和View之间的关系;只要是与业务有关的,就该放在Model里面。好的设计,应当是胖Model,瘦Controller。
指视图,就是呈现给用户一个界面,是Model的表现形式,也是手机用户输入的地方;
View主要负责显示,一切跟显示界面无关的东西,都不应该出现在这里,因此View里一般不会出现复杂的判断句、复杂的运算过程。
关于View的几个原则:
?控制器(Controller)1. 负责页面显示,以html为主
?2. 一般没有复杂的判断句、复杂的运算过程,可以有简单的循环语句、格式化语句。
?3. 从不调用Model的写方法,也是就是只会从Model内取数据,不会直接修改Model
?4. 一般没有准备数据的代码,如查询数据库,组合成一定格式等,这些都是放在Controller里面,然后分配给View;
?也就是说View用到的数据,都是可以直接用的变量。
指控制器,主要用来相应用户请求,决定使用什么师徒,用什么数据来显示。
Controller的几个原则:
?1. 处理用户请求,因此,对于reqeust的访问代码应该放在Controller里面,比如 $_GET $_POST 等。但仅限于获取用户请求数据,不应该对数据有任何操作或预处理,这些工作应该交由Models来完成。
?2. 调用Models的读方法,获取数据,直接传递给视图,供显示。 当涉及到多个Model时,有关的逻辑应当交给Model来完成。
?3. 调用Models的类方法,对Models进行写操作。
?4. 调用视图渲染函数等,形成对用户Reqeust的Response。