1. 首页
  2. 课程学习
  3. Java
  4. 解释器模式及Java实现简介

解释器模式及Java实现简介

上传者: 2024-04-13 00:13:53上传 DOCX文件 24.95KB 热度 6次

// 定义表达式接口

interface Expression {

boolean interpret(String context);

}

// 创建具体表达式类

class TerminalExpression implements Expression {

private String data;

public TerminalExpression(String data) {
    this.data = data;
}

public boolean interpret(String context) {
    return context.contains(data);
}

}

// 创建解释器类

class AndExpression implements Expression {

private Expression expr1;

private Expression expr2;

public AndExpression(Expression expr1, Expression expr2) {
    this.expr1 = expr1;
    this.expr2 = expr2;
}

public boolean interpret(String context) {
    return expr1.interpret(context) && expr2.interpret(context);
}

}

// 客户端类

public class InterpreterPatternDemo {

public static Expression getMaleExpression() {

Expression robert = new TerminalExpression("Robert");

Expression john = new TerminalExpression("John");

return new OrExpression(robert, john);

}

public static Expression getMarriedWomanExpression() {
    Expression julie = new TerminalExpression("Julie");
    Expression married = new TerminalExpression("Married");
    return new AndExpression(julie, married);
}

public static void main(String[] args) {
    Expression isMale = getMaleExpression();
    Expression isMarriedWoman = getMarriedWomanExpression();

    System.out.println("John is male? " + isMale.interpret("John"));
    System.out.println("Julie is a married woman? " + isMarriedWoman.interpret("Married Julie"));
}

}

用户评论