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

安顺市建设局网站运维工程师是青春饭吗

安顺市建设局网站,运维工程师是青春饭吗,全国企业信息查询网,网站建设顺德行为型设计模式之Interpreter(解释器) 前言: 自己的话理解:自定义一个解释器用来校验参数或数据是否合法。 1)意图 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解…

行为型设计模式之Interpreter(解释器)

前言:
自己的话理解:自定义一个解释器用来校验参数或数据是否合法。

1)意图

给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语音中的句子。

2)结构

在这里插入图片描述

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;/*** @author psd 行为设计模式之解释器模式*/
public class InterpreterPattern {public static void main(String[] args) {Context context = new Context();context.check("江苏的南京");context.check("南京的一哥");context.check("南京的芜湖");context.check("安徽的合肥");System.out.println("------------");context.check("合肥的马鞍山");}
}/*** 表达式接口*/
interface Expression {/*** 解释器 判断是否合法* * @param context*            文本信息* @return 是否合法*/boolean interpret(String context);
}class Context{private String[] prefixArr = {"江苏","安徽","南京"};private String[] suffixArr = {"南京","苏州","合肥","马鞍山","芜湖", "|州","一哥","马鞍山"};private NonterminalExpression nonterminalExpression;public Context() {TerminalExpression presix = new TerminalExpression(prefixArr);TerminalExpression suffix = new TerminalExpression(suffixArr);nonterminalExpression = new NonterminalExpression(presix,  suffix);}public void check(String info) {boolean result = nonterminalExpression.interpret(info);if (result) {System.out.println("识别成功.....");} else {System.out.println("识别失败.....");}}
}/*** 非终端表达式*/
class NonterminalExpression implements Expression {private TerminalExpression presix;private TerminalExpression suffix;public NonterminalExpression(TerminalExpression presix, TerminalExpression suffix) {this.presix = presix;this.suffix = suffix;}@Overridepublic boolean interpret(String context) {String[] splitStr = context.split("的");// 判断前缀和后缀是否合法return presix.interpret(splitStr[0]) && suffix.interpret(splitStr[1]);}
}/*** 终端表达式*/
class TerminalExpression implements Expression {private Set<String> set = new HashSet<>();public TerminalExpression(String[] data) {Collections.addAll(set, data);}/*** 判断是否合法* * @param context*            文本信息* @return 是否合法*/@Overridepublic boolean interpret(String context) {return set.contains(context);}
}

3)适用性

Interpreter模式适用于当有一个语言需要解释执行,并且可将该语言中的句子表示为一个抽
象语法树时,以下情况效果最好:

  • 该文法简单。对于复杂的发文,文法的类层次变得庞大而无法管理。
  • 效率不是一个关键问题。最高效的解释器通常不是通过直接解释语法分析树实现的,
    而是首先将它们转换成另一种形式。

总结:何时选择解释器模式
场景特征 例子
需解析领域特定语言(DSL) 金融公式、业务规则表达式
频繁处理结构化查询/过滤条件 自定义日志过滤器、数据查询
简单语法且变化不频繁 数学表达式、布尔逻辑解析
动态执行用户定义的规则 游戏AI条件、促销活动规则引擎

喜欢我的文章记得点个在看,或者点赞,持续更新中ing…


文章转载自:

http://43IkqMx2.mttqp.cn
http://J9Zxkyub.mttqp.cn
http://01ZvJSxh.mttqp.cn
http://UdB2Ze5F.mttqp.cn
http://uKqQdgf0.mttqp.cn
http://17w0DVbV.mttqp.cn
http://zwwNDq2x.mttqp.cn
http://mZA53qYY.mttqp.cn
http://MgYyazpK.mttqp.cn
http://yqzu5uYI.mttqp.cn
http://eaWITqfw.mttqp.cn
http://oHVOM5Vb.mttqp.cn
http://G6XOhh4H.mttqp.cn
http://ooEOXotj.mttqp.cn
http://Aey2HeSG.mttqp.cn
http://7hXq2j8b.mttqp.cn
http://lMFYpauK.mttqp.cn
http://VWGsFv4a.mttqp.cn
http://WWirKJ8g.mttqp.cn
http://ITQLvJlz.mttqp.cn
http://YqxPB7pM.mttqp.cn
http://gDKAZXkN.mttqp.cn
http://Xog1BklK.mttqp.cn
http://uLwrQzRB.mttqp.cn
http://ykfwcBp5.mttqp.cn
http://TFvG2DEh.mttqp.cn
http://JFWnNm0s.mttqp.cn
http://kd8cXyzu.mttqp.cn
http://X0KeCWxr.mttqp.cn
http://EGzmTJHU.mttqp.cn
http://www.dtcms.com/wzjs/754561.html

相关文章:

  • 网站后台功能需求seo营销专员
  • 会员管理网站ASP建设wordpress的图片主题
  • 外贸网站推广平台蓝颜seo牛成都百度seo代理
  • 欧美风网站建设石家庄科技中心网站
  • 可以做英文单词puzzle的网站网站建设 栏目管理
  • 做原型交互的网站工具太原网站建设世纪优创
  • 怎么做网站自动采集数据库某个网站做拍卖预展的好处
  • 自己做外贸购物网站wordpress框架是什么
  • 做网站服务器是什么wordpress需要登录才可以看到内容
  • 公司电子商务网站建设规划方案专业网站优化方案
  • 国家建设部标准官方网站wordpress主题大全
  • wordpress不用ftpwin10优化大师免费版
  • 昆明 五华 网站建设东莞今天最新消息新闻
  • vue cms 网站开发静态网页制作实验报告
  • 简单个人网站制作流程seo学徒
  • wap网站前景怎么根据街景图片找地址
  • 一般做海报的图片跟哪个网站下载抖音营销软件
  • 微信怎么制作微电影网站郑州模板网站建设
  • 分析可口可乐网站建设的目的网站开发与推广方向
  • 站长工具是做什么的ico在线制作网站
  • 快刷网站做个企业网站
  • 做的网站一定要收录么大学专业分类目录
  • 郑州网站优化公司机票网站开发知乎
  • 天津高端网站建设案例wordpress硬件条件
  • 建设银行联号查询网站安全员考试成绩查询网
  • 哪里创建免费个人网站网站集约化建设要求
  • 做平台好还是自己建网站jsp怎样做网站
  • 网站只做静态页面安全受到影响建设网站素材
  • 动态公司网站设计简约商务ppt模板免费下载
  • 亚马逊deal网站怎么做哪个网站可以在线做高考题