解释器模式-大话设计模式

简介: 解释器模式-大话设计模式

一、介绍

解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。

二、代码实现

//抽象表达式
public abstract class AbstractExpression {
    //解释操作
    public abstract  void interpret(Context content);
}
 
//非终结符表达式
public class NonterminalExpression extends AbstractExpression {
    @Override
    public void interpret(Context content) {
        System.out.println("非终端解释器");
    }
}
 
//终结符表达式
public class TerminalExpression extends AbstractExpression {
    @Override
    public void interpret(Context content) {
        System.out.println("终端解释器");
    }
}
 
public class Context {
    private String input;
    private String output;
 
    public String getInput() {
        return input;
    }
 
    public void setInput(String input) {
        this.input = input;
    }
 
    public String getOutput() {
        return output;
    }
 
    public void setOutput(String output) {
        this.output = output;
    }
}

测试:

public class Client {
    public static void main(String[] args) {
        Context context = new Context();
        ArrayList<AbstractExpression> list = new ArrayList<>();
        list.add(new TerminalExpression());
        list.add(new NonterminalExpression());
        list.add(new TerminalExpression());
        list.add(new NonterminalExpression());
 
        for (AbstractExpression expression : list) {
            expression.interpret(context);
        }
    }
}


相关文章
|
5月前
|
设计模式 算法
策略模式-大话设计模式
策略模式-大话设计模式
|
5月前
|
设计模式
装饰者模式-大话设计模式
装饰者模式-大话设计模式
|
5月前
|
设计模式
中介者模式-大话设计模式
中介者模式-大话设计模式
|
5月前
|
设计模式
备忘录模式-大话设计模式
备忘录模式-大话设计模式
|
5月前
|
设计模式 算法
访问者模式-大话设计模式
访问者模式-大话设计模式
|
5月前
|
设计模式
迭代器模式-大话设计模式
迭代器模式-大话设计模式
|
5月前
|
设计模式
状态模式-大话设计模式
状态模式-大话设计模式
|
5月前
|
设计模式
组合模式-大话设计模式
组合模式-大话设计模式
|
5月前
|
设计模式
外观模式-大话设计模式
外观模式-大话设计模式
|
6月前
|
设计模式 算法
大话设计模式(2)——策略模式
大话设计模式(2)——策略模式
43 1