https://blog.csdn.net/lovelion/article/details/7713602
概念:这种模式实现了一个表达式接口
该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。
听名字就应该明白这是对某个对象或数据进行做出解释或者结果处理
比如 一个计算器 就可以使用解释器模式
/**
-
@Classname ExplainClass
-
@Description 解释器模式 现在基本上没人自己写了
-
因为它会引起效率、性能以及维护等问题,一般在大中型的框架型项目能够找到它的身影,如一些数据分析工具、报表设计工具、科学计 算工具等,
-
若你确实遇到“一种特定类型的问题发生的频率足够高”的情况,准备使用解释器模式时,可以考虑一下
-
Expression4J、MESP(Math Expression String Parser)、Jep等开源的解析工具包
-
@Date 2021/3/21 18:34
-
@Created by 86386
*/
1.定义一个表达式接口
public interface Expression {
public boolean interpret(String context);
}- 实现表达式接口
public class TerminalExpression implements Expression {
private String data;
public TerminalExpression(String data){
this.data = data;
}@Override
public boolean interpret(String context) {
if(context.contains(data)){
return true;
}
return false;
}
} - 实现表达式接口
public class OrExpression implements Expression {
private Expression expr1 = null;
private Expression expr2 = null;
public OrExpression(Expression expr1, Expression expr2) {
this.expr1 = expr1;
this.expr2 = expr2;
}
@Override
public boolean interpret(String context) {
return expr1.interpret(context) || expr2.interpret(context);
}
}