设计模式之解释器模式

2017-06-14  本文已影响58人  老羊_肖恩

解释器模式的定义

解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,在现在项目中使用较少。其定义如下:Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentence in the language. 即:给定一门语言,定义它的语法的一种表示,并定义一个解释器,该解释器用来解释语言中的句子。
解释器模式的通用类图如下:


解释器.png
import java.util.ArrayList;
import java.util.List;

//抽象表达式
public abstract class Expression{
    //解析任务
    public abstract Object interpret(Context ctx);
}

//终结符表达式
public class TerminalExpression extends Expression{

    //进行文法处理
    @Override
    public Object interpret(Context ctx) {
        return null;
    }
    
}
//非终结符表达式
public class NonTerminalExpression extends Expression{
    
    public NonTerminalExpression(Expression...expressions){
        
    }
    
    //进行文法处理
    @Override
    public Object interpret(Context ctx) {
        return null;
    }
    
}

//

public class Context{
    
}

//客户端
public class InterpreterClient{
    public static void main(String[] args) {
        Context ctx = new Context();
        List<Expression> list = new ArrayList<Expression>();
        list.forEach(e->{
            //进行语法判断
            e.interpret(ctx);
        });
    }
}

解释器模式的应用

解释器模式的优点

解释器是一个简单的语法分析工具,最显著的特点就是扩展性。修改和扩展语法只需要修改或扩展相应的非终结表达式即可。

解释器模式的缺点

解释器模式的使用场景

《注》以上内容总结自秦小波-《设计模式之禅》,仅为个人学习笔记

上一篇下一篇

猜你喜欢

热点阅读