解释器模式

用于分析一个实体的关键元素,并且针对每个元素提供自己的解释或相应动作。解释器模式非常常用,比如PHP的模板引擎 就是非常常见的一种解释器模。

代码设计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php 
// 解释器模式 用于分析一个实体的关键元素,并且针对每个元素提供自己的解释或相应动作 
// 解释器模式非常常用,比如PHP的模板引擎 就是非常常见的一种解释器模式 
class template
{
    private $left = "<!--{";
    private $right = "}-->";
 
    public function run($str)
    {
        return $this->init($str, $this->left, $this->right);
    }
 
 
    /**
     * 模板驱动-默认的驱动
     * @param string $str
     * @param string $left
     * @param string $right
     * @return mixed
     */
    private function init($str, $left, $right)
    {
        $pattern = array('/' . $left . '/', '/' . $right . '/');
        $replacement = array('', '');
        return preg_replace($pattern, $replacement, $str);
    }
}
 
$str = "这是一个模板类,简单的模板类,标题为:<!--{Hello World}-->";
$template = new template;
echo $template->run($str);