美文网首页
设计模式(23)之解释器模式

设计模式(23)之解释器模式

作者: zhglance | 来源:发表于2019-07-14 22:07 被阅读0次

    解释器模式(Interpreter Pattern),如果一个类型的问题发生的概率很高,那么可以定义一种文法,并定义一个解释器,该解释器通过这些文法句子来解决该问题。

    一、需求举例:

    C语言由C语言解释器来处理,Java语言由Java解释器处理。

    二、类图:

    三、代码实例:

    1.解释器父类:Expression

    package com.lance.interpreter;
    
    public interface Expression {
    
        void interpreter(Context context);
    }
    
    

    2.C语言解释器:CExpression

    package com.lance.interpreter;
    
    public class CExpression implements Expression {
        @Override
        public void interpreter(Context context) {
            System.out.println("This is C language");
        }
    }
    
    

    3.Java语言解释器:JavaExpression

    package com.lance.interpreter;
    
    public class JavaExpression implements Expression {
        @Override
        public void interpreter(Context context) {
            System.out.println("This is Java language");
        }
    }
    
    

    4.上下文类:Context

    package com.lance.interpreter;
    
    public class Context {
    
        private String context;
    
        public String getContext() {
            return context;
        }
    
        public void setContext(String context) {
            this.context = context;
        }
    }
    
    

    5.主类:InterpreterPattern

    package com.lance.interpreter;
    
    public class InterpreterPattern {
    
        public static void main(String[] args) {
    
            System.out.println("==========start==========");
    
            Context context = new Context();
            context.setContext("C");
    
            Expression cExpression = new CExpression();
            cExpression.interpreter(context);
    
            System.out.println("=======================");
    
    
            context.setContext("Java");
    
            Expression javaExpression = new JavaExpression();
            javaExpression.interpreter(context);
    
    
    
    
            System.out.println("==========end==========");
    
        }
    }
    
    

    输出结果:

    ==========start==========
    This is C language
    =======================
    This is Java language
    ==========end==========
    

    相关文章

      网友评论

          本文标题:设计模式(23)之解释器模式

          本文链接:https://www.haomeiwen.com/subject/gbcwhctx.html