php设计模式 Interpreter(解释器模式)


Posted in PHP onJune 26, 2011
<?php 
/** 
* 解释器 示例 
* 
* @create_date: 2010-01-04 
*/ 
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]; 
switch(true) 
{ 
case is_numeric($temp): $expression = new ExpressionNum(); break; 
default: $expression = new ExpressionCharater(); 
} 
echo $expression->interpreter($temp); 
} 
} 
} 
$obj = new Interpreter(); 
$obj->execute("12345abc"); 
?>
PHP 相关文章推荐
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
php中return的用法实例分析
Feb 28 PHP
摘自织梦CMS中的图片处理类
Aug 08 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 PHP
PHP7 新增功能
Mar 09 PHP
php设计模式 Strategy(策略模式)
Jun 26 #PHP
php设计模式 Observer(观察者模式)
Jun 26 #PHP
php设计模式 Singleton(单例模式)
Jun 26 #PHP
php设计模式 Command(命令模式)
Jun 26 #PHP
php设计模式 Template (模板模式)
Jun 26 #PHP
php设计模式 Proxy (代理模式)
Jun 26 #PHP
php设计模式 Composite (组合模式)
Jun 26 #PHP
You might like
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
javascript每日必学之多态
2016/02/23 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
react-router中的属性详解
2017/06/01 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
Python深入学习之特殊方法与多范式
2014/08/31 Python
Python自动扫雷实现方法
2015/07/25 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
Python 自由定制表格的实现示例
2020/03/20 Python
Python如何将函数值赋给变量
2020/04/28 Python
Python如何实现的二分查找算法
2020/05/27 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
大学生毕业求职的自我评价
2013/09/29 职场文书
门卫岗位安全职责
2013/12/13 职场文书
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
格林童话读书笔记
2015/06/30 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python