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");
    ?>
    
  • 相关阅读:
    java之 向上转型与向下转型
    java之 惰性初始化
    mysql 学习网站
    history of program atan2(y,x)和pow(x,y)
    atom 之 前端必备插件
    js之正则表达式
    Django之模型层
    每日作业5/28
    每日作业5/27
    每日作业5.26
  • 原文地址:https://www.cnblogs.com/bluefrog/p/1925933.html
Copyright © 2011-2022 走看看