解释器模式
2017-05-29 本文已影响2人
散装咖啡
/**
interpreter模式
*/
class Expression
{
function interpreter($str)
{
return$str;
}
}
class ExpressionNum extends Expression
{
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 extends Expression
{
function interpreter($str)
{
return strtoupper($str);
}
}
class Interpreter
{
function execute($string)
{
$expression = null;
for ($i= 0;$i<strlen($string);$i++) {
$temp = $string[$i];
$expression = is_numeric($temp) ? new ExpressionNum() : new ExpressionCharater();
echo$expression->interpreter($temp);
}
}
}
$obj=new Interpreter();
$obj->execute("12345abc");
参考文章 https://wenku.baidu.com/view/b4c78b4702768e9951e738fb.html