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

鑫迪一键建站系统免费的行情软件app网站

鑫迪一键建站系统,免费的行情软件app网站,wordpress手机版怎么做,十大软件排行榜类型:行为型模式 实现原理:实现了一个表达式接口,该接口使用标识来解释语言中的句子 作用:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器来解释。 主要解决:一些重…

类型:行为型模式

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

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

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

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

解决的方法:构建语法树

实现核心:构建环境类,包含解释器之外的一些全局信息,一般是 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.ds6.com.cn/news/105055.html

相关文章:

  • 房价下跌最新消息seo优化师培训
  • 汝南企业网站建设影视剪辑培训机构排名
  • 大公司网站搭建公司seo综合查询网站源码
  • 南京做网站seo的seo新人培训班
  • 网站建设业务员培训seo网络科技有限公司
  • 网站不用模板如何更新文章南京网站推广排名
  • 电脑自己做网站可以吗整站快速排名
  • 免费动态域名解析软件搜索引擎优化分析报告
  • 自己做的网站怎么上传文章网络营销最新案例
  • 商标转让费用多少钱网站关键词排名怎么优化
  • 网上黑赌网站如何做代理百度精准搜索
  • 深圳比较好的设计网站公司怎样优化网站排名靠前
  • 中国建设银行笔试确认网站线上培训平台
  • 郑州网站建设定制开发第一设计
  • 合肥网站开发网络公司google搜索app下载
  • 女生做网站前台百度seo优化关键词
  • 网站建设的公司好做吗网络软文营销案例
  • wordpress描述调用字数宁波seo推广优化
  • 制作网站品牌公司哪家好在线数据分析工具
  • 公司网站设计舆情服务公司
  • 专门给小公司做网站网络推广方式有哪些
  • 网站建设做网站深圳seo
  • 苏州本地网站有哪些在哪里查关键词排名
  • 超炫网站页面中国网络营销公司
  • 哪个b2b网站做推广效果好国内免费域名注册
  • 淘宝客帮做网站超级外链工具源码
  • 怎么上传文件到ftp网站办公软件速成培训班
  • 郯城做网站建设网站的十个步骤
  • 泰州网站建设服务好网站建设的基本
  • 三门峡网站seo如何做广告宣传与推广