首页 » 网站建设 » php设计模式解析技巧_PHP设计模式之解释器模式

php设计模式解析技巧_PHP设计模式之解释器模式

访客 2024-11-11 0

扫一扫用手机浏览

文章目录 [+]

概述:给定一种措辞,定义他的文法的一种表示,并定义一个阐明器,该阐明器利用该表示来阐明措辞中句子

阐明器模式的优缺陷:

php设计模式解析技巧_PHP设计模式之解释器模式

阐明器是一个大略的语法剖析工具,它最显著的优点便是扩展性,修正语法规则只须要修正相应的非闭幕符就可以了,若扩展语法,只须要增加非闭幕符类就可以了。
但是,阐明器模式会引起类的膨胀,每个语法都须要产生一个非闭幕符表达式,语法规则比较繁芜时,就可能产生大量的类文件,为掩护带来非常多的麻烦。
同时,由于采取递归调用方法,每个非闭幕符表达式只关心与自己干系的表达式,每个表达式须要知道终极的结果,必须通过递归办法,无论是面向工具的措辞还是面向过程的措辞,递归都是一个不推举的办法。
由于利用了大量的循环和递归,效率是一个不容忽略的问题。
特殊是用于阐明一个解析繁芜、冗长的语法时,效率是难以忍受的。

php设计模式解析技巧_PHP设计模式之解释器模式
(图片来自网络侵删)

<?php

class Expression

{

function interpreter($str)

{

return $str;

}

}

<?php

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 \公众九\"大众;

}

}

}

<?php

class ExpressionCharater extends Expression

{

function interpreter($str)

{

return strtoupper($str);

}

}

<?php

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(); break;

}

echo $expression->interpreter($temp);

}

}

}

<?php

/

阐明器模式

/

public function actionExpression(){

Yii::import('ext.expression.');

$obj = new Interpreter();

$obj->execute(\公众12345abc\"大众);

}

标签:

相关文章

介绍皮肤设置,如何打造理想肌肤状态

随着科技的发展和人们对美的追求,皮肤设置已成为美容护肤的重要一环。如何根据皮肤类型、肤质、年龄等因素进行合理设置,已成为众多爱美人...

网站建设 2025-01-03 阅读3 评论0

介绍盖章制作,传承文化,彰显权威

自古以来,盖章在我国文化中具有重要的地位。从古代的官印、私印到现代的公章、合同章,盖章已成为一种独特的文化符号,承载着丰富的历史内...

网站建设 2025-01-03 阅读4 评论0

介绍监控破坏,技术手段与法律风险并存

随着科技的飞速发展,监控设备已遍布大街小巷,成为维护社会治安的重要手段。一些不法分子为了逃避法律制裁,开始研究如何破坏监控设备。本...

网站建设 2025-01-03 阅读1 评论0

介绍登录不上之谜,技术故障还是人为疏忽

随着互联网的普及,登录已成为人们日常生活中不可或缺的一部分。在享受便捷的登录不上这一问题也困扰着许多用户。本文将深入剖析登录不上之...

网站建设 2025-01-03 阅读1 评论0

介绍电脑键盘调出方法,让操作更高效

随着科技的发展,电脑已经成为了我们日常生活中不可或缺的工具。而电脑键盘,作为电脑输入设备,更是我们与电脑进行交流的桥梁。你是否知道...

网站建设 2025-01-03 阅读1 评论0

介绍磁力链,高效便捷的文件下载利器

在互联网高速发展的今天,文件下载已成为日常生活中不可或缺的一部分。而磁力链作为一种新型的文件下载方式,凭借其高效、便捷的特点,受到...

网站建设 2025-01-03 阅读1 评论0