广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州什么是Java解释器模式?_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-30分类:Java技术浏览:1010


导读:上一篇文章我们知道了什么是Java中介者模式,下面我们跟着惠州北大青鸟老师一起来学习一下什么是Java解释器模式。

上一篇文章我们知道了什么是Java中介者模式,下面我们跟着惠州北大青鸟老师一起来学习一下什么是Java解释器模式。

我们通常使用解释器模式来评估语言语法或表达。

这种类型的模式是行为模式之一。

例子

interface Expression {  public boolean evaluate(String context);
}class IsInExpression implements Expression {  private String data;  public IsInExpression(String data) {
   this.data = data;
 }

 @Override  public boolean evaluate(String context) {    if (context.contains(data)) {      return true;
   }    return false;
 }
}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 evaluate(String context) {    return expr1.evaluate(context) || expr2.evaluate(context);
 }
}class AndExpression implements Expression {  private Expression expr1 = null;  private Expression expr2 = null;  public AndExpression(Expression expr1, Expression expr2) {
   this.expr1 = expr1;
   this.expr2 = expr2;
 }

 @Override  public boolean evaluate(String context) {    return expr1.evaluate(context) && expr2.evaluate(context);
 }
}public class Main {  public static void main(String[] args) {
   Expression select = new IsInExpression("Select");
   Expression from = new IsInExpression("From");
   Expression isSelectFrom = new AndExpression(select, from);

   Expression insert = new IsInExpression("Insert");
   Expression update = new IsInExpression("Update");
   Expression isInsertOrUpdate = new OrExpression(insert, update);

   System.out.println(isSelectFrom.evaluate("Select"));
   System.out.println(isInsertOrUpdate.evaluate("Insert"));

   System.out.println(isSelectFrom.evaluate("Select From"));
   System.out.println(isInsertOrUpdate.evaluate("Update"));
 }
}

上面的代码生成以下结果。

false

true

true

true

想学Java的同学们,可以来惠州北大青鸟新方舟校区详细了解。

Java12.jpg

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表