zoukankan      html  css  js  c++  java
  • 设计模式解释器

    解释器模式


    设计原则:遵循单一职责
    常用场景:有一种语言被频繁的使用
    使用概率:0.00009%
    复杂度:中高
    变化点:语言的规则
    选择关键点:被频繁使用的语言是否可用文法表示
    逆鳞:语言的规则无限制增长或规则十分不稳定


    主要思想:
    一般主要应用在OOP开发中的编译器的开发
    比如正则的匹配,spring典型的调度任务中的expression表达式的解析



    public interface Expression {
        public int interpret(Context context);
    }
    
    
    public class Plus implements Expression {
        @Override
        public int interpret(Context context) {
            return context.getNum1()+context.getNum2();
        }
    }
    
    
    public class Minus implements Expression {
        @Override
        public int interpret(Context context) {
            return context.getNum1()-context.getNum2();
        }
    }
    
    
    public class Context {
        private int num1;
        private int num2;
    
        public Context(int num1, int num2) {
            this.num1 = num1;
            this.num2 = num2;
        }
    
        public int getNum1() {
            return num1;
        }
    
        public void setNum1(int num1) {
            this.num1 = num1;
        }
    
        public int getNum2() {
            return num2;
        }
    
        public void setNum2(int num2) {
            this.num2 = num2;
        }
    }
    
    
    public static void main(String[] args) {
            int result = new Minus().interpret((new Context(new Plus().interpret(new Context(9, 2)), 8)));
            System.out.println(result);
        }
  • 相关阅读:
    C语言扩展题
    C语言第五题
    C语言第四题
    C语言第三题
    c语言第二题
    11
    游戏开发的一些想法
    openxml的视频教程
    JavaScript调试之console.log
    IPPatternConverter
  • 原文地址:https://www.cnblogs.com/zhaojj/p/7800567.html
Copyright © 2011-2022 走看看