zoukankan      html  css  js  c++  java
  • [php]php设计模式 Interpreter(解释器模式)

    <?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");
    ?>
    
  • 相关阅读:
    今日总结
    每日总结
    每日总结
    每日总结
    重返现世
    [PKUWC2018]随机游走
    [HAOI2015]按位或
    [NOI2020] 超现实树
    [NOI2017] 游戏
    [CSACADEMY]Card Groups
  • 原文地址:https://www.cnblogs.com/bluefrog/p/1925933.html
Copyright © 2011-2022 走看看