前后端分离--三层

建议先了解怎么分两层,http://www.cnblogs.com/-beyond/p/7954177.html

再分两层的基础上,还可对后端处理数据的那一层再一分为二,一层为模型层(model),一层为控制层(controller)

其中模型层(model)的任务是对数据进行处理,然后提供一个接口(interface、function)给控制器层(controller),控制器层把数据(通过调用模型层提供的接口获得) 分配(或者说是指派)给视图层(view),视图层就是分成两层时的模板(template)。

代码示例如下:

视图层(view.php)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<h1>根据ID获得姓名</h1>
	<form action="">
		<input type="text" name="id">
		<input type="submit" name="submit">
	</form>
	<p>
		<?php 
			if(!empty($result)){
				echo $result;
			} 
		?>
	</p>
</body>
</html>

然后是控制器层(controller.php):

<?php 
	// 载入模型层
	include("model.php");

	//获取视图层传来的数据
	$id=isset($_GET['id'])?$_GET['id']:"";

	//调用模型层的方法,获得数据,并将数据进行处理。
	$result="查询结果是:".getNameByID($id);

	//载入视图
	include("view.php");
 ?>

最后是模型层(model.php):

<?php 
	//此处简单模拟从数据库查询过程。
	function getNameByID($id){
		$name=array("one"=>"张飞","two"=>"刘备","three"=>"关羽");
		if(array_key_exists($id, $name)){
			return $name[$id];
		} else {
			return "暂无此人";
		}
	}
 ?>

  运行结果如下:

 

  总结:

  模型层只负责产生并返回数据(通过提供一个接口给控制器层),一般不会对数据进行额外的格式处理,格式处理的工作应该交给控制器层来做;

  控制器层只是接受视图层的请求,根据请求来调用模型提供的接口来获取数据,并对数据的格式等进行处理后 指派 给视图

  视图负责展示 包含控制器层分配的 数据的 界面

 

posted @ 2017-12-02 15:33  寻觅beyond  阅读(627)  评论(0编辑  收藏  举报
返回顶部