当前位置: 首页 > news >正文

青岛个人建站模板中国站长站

青岛个人建站模板,中国站长站,免费自学网,广水做网站类型:行为型模式 实现原理:实现了一个表达式接口,该接口使用标识来解释语言中的句子 作用:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器来解释。 主要解决:一些重…

类型:行为型模式

实现原理:实现了一个表达式接口,该接口使用标识来解释语言中的句子

作用:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器来解释。

主要解决:一些重复的固定文法分别创建解释器会很麻烦

何时使用:某一种特定类型的问题发生的频率足够高

解决的方法:构建语法树

实现核心:构建环境类,包含解释器之外的一些全局信息,一般是 HashMap。

应用实例:编译器、运算表达式计算。

优点:1、易扩展 2、表达式解释方法增加 3、易于实现文法

缺点: 1、可利用场景数量不确定。 2、复杂文法难维护。 3、解释器模式可能引起类膨胀。

使用场景:SQL 解析、符号处理引擎等。

实现

步骤 1
创建一个表达式接口。Expression.java
public interface Expression {public boolean interpret(String context);
}
步骤 2
创建实现了上述接口的实体类。TerminalExpression.java
public class TerminalExpression implements Expression {private String data;public TerminalExpression(String data){this.data = data; }@Overridepublic boolean interpret(String context) {if(context.contains(data)){return true;}return false;}
}
OrExpression.java
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;}@Overridepublic boolean interpret(String context) {      return expr1.interpret(context) || expr2.interpret(context);}
}
AndExpression.java
public class AndExpression implements Expression {private Expression expr1 = null;private Expression expr2 = null;public AndExpression(Expression expr1, Expression expr2) { this.expr1 = expr1;this.expr2 = expr2;}@Overridepublic boolean interpret(String context) {      return expr1.interpret(context) && expr2.interpret(context);}
}
步骤 3
InterpreterPatternDemo 使用 Expression 类来创建规则,并解析它们。InterpreterPatternDemo.java
public class InterpreterPatternDemo {//规则:Robert 和 John 是男性public static Expression getMaleExpression(){Expression robert = new TerminalExpression("Robert");Expression john = new TerminalExpression("John");return new OrExpression(robert, john);    }//规则:Julie 是一个已婚的女性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 women? " + isMarriedWoman.interpret("Married Julie"));}
}
步骤 4
执行程序,输出结果:John is male? true
Julie is a married women? true这段代码是一个解释器模式(Interpreter Pattern)的示例。解释器模式用于定义语言的文法,并解析相关的表达式。在这个示例中,首先创建了一个表达式接口 Expression,其中定义了一个 interpret 方法用于解释表达式。接着定义了三个实现了 Expression 接口的实体类:TerminalExpressionOrExpressionAndExpressionTerminalExpression 类表示终结符表达式,它用于判断给定的上下文是否包含特定的数据。OrExpression 类和 AndExpression 类表示非终结符表达式,它们用于组合其他表达式并进行逻辑运算。最后,在 InterpreterPatternDemo 类中使用 Expression 类来创建具体的规则,并对其进行解析。在 main 方法中,通过调用 getMaleExpression 和 getMarriedWomanExpression 方法创建了两条规则,并使用 interpret 方法对输入的上下文进行解释。运行程序后,输出了两个解释结果。注意:这只是解释器模式的一个简单示例,实际应用中可能会更加复杂。解释器模式通常用于处理特定领域的语言解析或规则验证等场景。
http://www.tj-hxxt.cn/news/118428.html

相关文章:

  • 兰州 网站建设百度搜索排名服务
  • 京住房和城乡建设委员会网站搜狗站长平台打不开
  • 网站开发技术可行性分析防疫优化措施
  • c2c wordpressseo技术公司
  • PHP 网站开发 重点知识免费推广的平台
  • 唐山正规做网站的公司b站推广网站2024年
  • 17网站一起做网店后台淘宝seo是什么意思啊
  • 做网站如何使用数据库苏州网站优化公司
  • 企业咨询图片aso搜索排名优化
  • 代理推广网站排名优化培训电话
  • 帮人做网站要怎么赚钱免费手机网站建站平台
  • 下载app 的网站 如何做营销案例100例简短
  • 义乌高端网站建设seo技术专员招聘
  • 雄安网站设计制作百度软件应用市场
  • 怎样下载别人网站自己做的视频免费网络营销推广软件
  • 合肥做网站费用黄冈便宜的网站推广怎么做
  • 路北网站制作微博seo排名优化
  • 咋建网站嘉兴网站建设
  • 怎么做体育直播网站如何搜索网页关键词
  • 网站建设管理 自查 报告品牌推广策略包括哪些内容
  • 学校网站设计流程互联网推广运营是干什么的
  • 织梦手机网站教程摘抄一篇新闻
  • 内网网站建设的必要性合肥seo优化
  • 做磁力解析网站长春seo按天计费
  • 建站出海百度招聘官网
  • 广州市萝岗区做网站设计服务百度seo推广免费
  • 百度微建站搜索引擎优化的内容
  • 网站导航栏下拉框怎么做网站建设开发公司
  • 请被人做网站广州品牌营销策划公司排名
  • 怎么让网站页面自适应深圳网站优化公司