行为型模式 解释器模式

1 给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。
interface Expression{
    public boolean interpret(String context);
}
class TerminalExpression implements Expression{
    String str;
    public TerminalExpression(String str){
        this.str = str;
    }
    @Override
    public boolean interpret(String context) {
        if (context.contains(str)){
            return true;
        }
        return false;
    }
}
class OrExpression implements Expression{
    private Expression expression1 = null;
    private Expression expression2 = null;
    public OrExpression(Expression expression1, Expression expression2){
        this.expression1 = expression1;
        this.expression2 = expression2;
    }
    @Override
    public boolean interpret(String context) {
        return expression1.interpret(context) || expression2.interpret(context);
    }
}
public class Test{
    public static Expression getExpression(){
        Expression expression1 = new TerminalExpression("exp1");
        Expression expression2 = new TerminalExpression("exp2");
        return new OrExpression(expression1, expression2);
    }
    public static void main(String[] args){
        Expression expression = getExpression();
        System.out.println(expression.interpret("exp1"));
    }
}


猜你喜欢

转载自blog.csdn.net/qq_28197211/article/details/80482656
今日推荐