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

ip地址反查域名北京优化seo公司

ip地址反查域名,北京优化seo公司,佛山外贸网站建设平台,禁止指定ip访问网站目录 一. 前言 二. 实现 三. 优缺点 一. 前言 解释器模式(Interpreter Pattern)指给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子,属于行为型设计模式。是…

目录

一. 前言

二. 实现

三. 优缺点


一. 前言

    解释器模式(Interpreter Pattern)指给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子,属于行为型设计模式。是一种按照规定的文法(语法)进行解析的模式。其核心思想就是识别文法,构建解释。

二. 实现

TerminalExpression: 终结符表达式,每个终结符都需要一个 TerminalExpression。
NonterminalExpression:非终结符表达式,实现文法中与非终结符有关的解释操作。
Context: 上下文,包含解释器之外的一些全局信息。

案例:以下是一个规则检验器实现,具有 and 和 or 规则,通过规则可以构建一颗解析树,用来检验一个文本是否满足解析树定义的规则。
例如一颗解析树为 D And (A Or (B C)),文本 "D A" 满足该解析树定义的规则。
这里的 Context 指的是 String。

public abstract class Expression {public abstract boolean interpret(String str);
}
public class TerminalExpression extends Expression {private String literal = null;public TerminalExpression(String str) {literal = str;}public boolean interpret(String str) {StringTokenizer st = new StringTokenizer(str);while (st.hasMoreTokens()) {String test = st.nextToken();if (test.equals(literal)) {return true;}}return false;}
}
public class AndExpression extends Expression {private Expression expression1 = null;private Expression expression2 = null;public AndExpression(Expression expression1, Expression expression2) {this.expression1 = expression1;this.expression2 = expression2;}public boolean interpret(String str) {return expression1.interpret(str) && expression2.interpret(str);}
}
public class OrExpression extends Expression {private Expression expression1 = null;private Expression expression2 = null;public OrExpression(Expression expression1, Expression expression2) {this.expression1 = expression1;this.expression2 = expression2;}public boolean interpret(String str) {return expression1.interpret(str) || expression2.interpret(str);}
}
public class Client {/*** 构建解析树*/public static Expression buildInterpreterTree() {// LiteralExpression terminal1 = new TerminalExpression("A");Expression terminal2 = new TerminalExpression("B");Expression terminal3 = new TerminalExpression("C");Expression terminal4 = new TerminalExpression("D");// B CExpression alternation1 = new OrExpression(terminal2, terminal3);// A Or (B C)Expression alternation2 = new OrExpression(terminal1, alternation1);// D And (A Or (B C))return new AndExpression(terminal4, alternation2);}public static void main(String[] args) {Expression define = buildInterpreterTree();String context1 = "D A";String context2 = "A B";System.out.println(define.interpret(context1));System.out.println(define.interpret(context2));}
}
true
false

三. 优缺点

优点:
1. 由于语法由很多类表示,所以,当语法规则或者扩展语法时,只需要修改或者扩展表达式即可。
2. 对于简单的文法应当比较简单且易于实现,过于复杂的语法并不适合解释器模式。
缺点:
1.由于语法由很多类表示,过于复杂时,会产生大量的解释类,引起类臃肿,增加系统维护的难度。
2. 解释器模式采用递归调用方法,当完整表达式层级较深时,解释效率会下降。

JDK中的解释器模式
java.util.Pattern
java.text.Normalizer
javax.el.ELResolver

http://www.khdw.cn/news/41347.html

相关文章:

  • 学校网页网站模板百度热门关键词
  • 天津高端网站b站推广app大全
  • 湖南长沙电信大楼着火南通关键词优化平台
  • 汕头企业建站网络推广竞价外包
  • 施工企业市场调查目的与主题主要有()。seo零基础教学视频
  • 设计网站价格优化关键词规则
  • 农业电商网站建设ppt竞价推广什么意思
  • 网站扩容需要多少钱seo推广费用需要多少
  • wordpress大开速度慢上海seo公司
  • 作品集公司网站百度网盘官网网页版
  • 贵阳公司网站建设全网最好的推广平台
  • 广告公司网站建设方案长沙网站托管优化
  • mui 网站开发网站推广方案策划书2000
  • 做网站建设给人销售怎样注册网站建立网页
  • 怎么做领券网站怎么做推广和宣传平台
  • 找网络公司做网站需要注意北京疫情最新消息情况
  • 做销售用什么网站好网站功能优化的方法
  • 兰山区网站建设推广百度推广账号登录入口
  • 佛山网站设计联系方式百度竞价点击一次多少钱
  • 帝国系统做企业网站服装营销方式和手段
  • 西城专业网站建设公司百度关键词指数排行
  • 网站首页制作方案怎么进行网络推广
  • 惠州网站设计怎么优化电脑系统
  • 泗洪做网站百度网址链接是多少
  • 爱网站官网百度网盘下载电脑版官方下载
  • 网站 图片 自动往右移游戏广告联盟平台
  • 高价做单网站百度识别图片找图
  • 深圳高端网站建设公司seo资讯
  • 主机屋网站空间的IP郑州网络推广哪家口碑好
  • 无锡响应式网站设计自助建站系统下载