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

外贸网站源码 php1688关键词排名查询工具

外贸网站源码 php,1688关键词排名查询工具,网站开发一般要用到哪些软件,如何给自己做网站行为型设计模式之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/358402.html

相关文章:

  • 个人网站建设策划书做博客的seo技巧
  • 搭建网站需要多少钱企业邮箱
  • 正规网站设计制作公司网络推广的主要工作内容
  • 网站建设 翻译网页设计与制作软件
  • 做网站网页排版错误云建站模板
  • 福建网站建设公司排名今天株洲最新消息
  • 做网站公司什么条件百度搜索链接入口
  • 莱特币做空 网站创建网址链接
  • 冠县做网站哪里好关键词排名提高
  • 北京建设网站的公司简介日本粉色iphone
  • 前端开发培训机构推荐无锡江东seo做关键词优化
  • 建设网站用英文怎么说百度竞价客服
  • 政府 网站 下载自媒体推广
  • 通江县政府网站四川建设网网站seo源码
  • 正邦设计招聘安卓系统优化软件
  • 太原集团网站建设谷歌商店下载
  • 温州模板网站建站河南网站建设哪个公司做得好
  • 上海广告牌制作公司临沂seo
  • 做网站 赚钱东莞网站开发公司
  • 微商怎么做网站搜索引擎推广的费用
  • 广州白云做网站网站怎么才能被百度收录
  • 租用网站如何制作网页产品推广思路
  • 网站备案密码格式百度网
  • 国内投资咨询网站 html模板西安网站建设公司
  • 都昌县建设局网站网络营销推广合作
  • 网站开发外贸网站的优化与推广分析
  • 网站公司怎么做的小红书怎么做关键词排名优化
  • 网站建设行情谷歌搜索引擎在线
  • 常州做网站的重庆百度推广开户
  • 公司做seo网站山西seo推广