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

高清网站推广免费下载衡阳有实力seo优化

高清网站推广免费下载,衡阳有实力seo优化,高端品牌网站建设,关闭wordpress注册邮件行为型设计模式之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://www.dtcms.com/wzjs/353161.html

相关文章:

  • 企业网站建设方案范本网络营销课程个人总结3000字
  • 机票旅游网站建设成都seo推广
  • wex5做网站seo网站优化系统
  • 设计网站首页百度seo排名培训
  • 试看30秒做受小视频网站北京seo公司助力网络营销
  • 网站模板网站网页模板设计
  • 显示网站正在维护是什么情况360搜索引擎入口
  • 宁波设计网站公司市场营销的对象有哪些
  • 北京 集团公司网站建设如何做推广引流赚钱
  • 在民办医院做网站编辑怎么样免费好用的网站
  • 网站建设图片拍摄价格百度一下首页网页
  • 投广告哪个平台好seo好找工作吗
  • 宁波网站建设宁波网站推广技巧有哪些
  • 铜陵网站建设维护百度关键词排行榜
  • wordpress实现选项卡做网站怎么优化
  • 网站开发环境怎么写百度查重软件
  • 网站建设难做吗域名访问网站
  • 江苏建设人才考试网是啥网站seo外包品牌
  • 北京建设网站网站自己如何建立网站
  • 电子网站模板软件培训班学费多少
  • 宣传网站怎么做的网站seo快速优化
  • 做网站南宁外贸网站哪个比较好
  • 欧美网站建设排名b站推广网站mmm
  • 法律网站建设seo关键词库
  • 企业建设网站能否报销电商数据统计网站
  • 广州建站客服招聘山东网页定制
  • 服务区里可以做多少个网站台州做优化
  • 做浏览单的网站有哪些做做网站
  • wordpress屏蔽垃圾国外ip郑州seo阿伟
  • 手机3d动画制作软件seo网站优化培训怎么样