MVC的划分原则

  对于MVC中三者的划分并没有十分明晰的定义和界线,只是一种指导思想,让你按照model,view,controller三个方面来描述你的应用,并通过这三者的的交互,使应用功能得以正常运转。

 

  其中,View的部分比较明确,就是负责显示。一切与显示界面无关的东西,都不应该出现在view里面。因此,biew中一般不会出现复杂的判断语句,不会出现复杂的运算过程。对于PHP的Web应用而言,毫无疑问,html是view中的主要内容。如下是关于view的几个原则:

1、负责显示界面,以html为主;

2、一般没有复杂的判断语句或运算过程,可以有简单的循环语句、格式化语句。比如,博客首页的文字列表就是一种循环;

3、从不调用Model的写方法。也就是说,View只从Model中获取数据,而从不改写Model,所以我们说他们是老死不相往来的。

4、一般没有任何准备数据处理的内容,如查询数据库等。这些一般是放在Controller里面,并以变量的形式传给视图。也就是说,视图里面要用到的数据,就是一个变量。

 

  对于Model而言,最主要就是保存事物的信息,保证事物的行为和对他可以进行操作。比如,Post类必然有一个用于保存博客文章标题的title属性,必然有一个删除的操作,这都是Model的内容。以下是关于Model的几个原则“

1、数据、行为、方法是Model的主要内容;

2、实际工作中,Model是MVC中代码量最大,逻辑最复杂的地方,因为关于应用的业务逻辑也要在这里表示;

3、注意与Controller区分开。Model是处理业务方面的逻辑,Controller只是简单的协调Model和View之间的关系。只要是与业务有关的,就该放在Model里面。好的设计,应该是胖Model,瘦Controller;

 

  对于Controller,主要是响应用户请求,决定使用什么视图,需要准备什么数据用来显示。以下是有关Controller的设计原则:

1、用于处理用户请求,因此,对于request的访问代码应该放在Controller里面,比如$_GET,$_POST等。但权限于获取用户请求数据,不应该对数据有任何操作或预处理,这应该放在model里面。

2、调用model类的方法,对model进行写操作。

3、调用视图渲染函数,形成对用户request的response。

4、一般不要有html代码等其他表现层的东西,这应该是属于view的内容。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2016-01-27 14:54  BGGANF  阅读(1240)  评论(0编辑  收藏  举报