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");
    ?>
    
  • 相关阅读:
    sort
    Sicily--17956. Maximum Multiple
    代码1005
    487-3279的解法实例
    487-3279另一种解法
    487-3279
    人工智能--识别句子
    1003-Hangover
    推荐书单(转自GITHUB)
    转自微信号:测试那点事
  • 原文地址:https://www.cnblogs.com/bluefrog/p/1925933.html
Copyright © 2011-2022 走看看