php设计模式 - 解释器模式

<?php 
/** 
* 解释器 示例 
* 
* @create_date: 2010-01-04 
*/ 
interface IExpression{
	public function interpreter($str);
}

class ExpressionNum implements IExpression 
{ 
	public function interpreter($str) 
	{ 
		switch($str) 
		{ 
			case "0": return "零"; 
			case "1": return "一"; 
			case "2": return "二"; 
			case "3": return "三"; 
			case "4": return "四"; 
			case "5": return "五"; 
			case "6": return "六"; 
			case "7": return "七"; 
			case "8": return "八"; 
			case "9": return "九"; 
		} 
	} 
} 
class ExpressionCharater implements IExpression 
{ 
	public function interpreter($str) 
	{ 
		return strtoupper($str); 
	} 
} 

class Interpreter 
{ 
	static public function execute($string) 
	{ 
		$expression = null; 
		for($i = 0;$i<strlen($string);$i++) { 
			$temp = $string[$i]; 
			switch(true) 
			{ 
				case is_numeric($temp): $expression = new ExpressionNum(); break; 
				default: $expression = new ExpressionCharater(); 
			} 
			return $expression->interpreter($temp); 
		} 
	} 
}

echo Interpreter :: execute("12345abc"); 
?>

解释器模式:用于分析一个实体的关键元素,并且针对每个元素提供自己的解释或相应动作。

常用在框架的模版引擎。

你可能感兴趣的:(php设计模式 - 解释器模式)