美文网首页
设计模式(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