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

怎样做动漫照片下载网站门户网站建设需求模板

怎样做动漫照片下载网站,门户网站建设需求模板,wordpress 门户模板,临时手机号注册网站定义 解释器模式是一种行为设计模式,用于定义一种语言的文法,并提供一个解释器来处理该语言的句子。它通过为每个语法规则定义一个类,使得可以将复杂的表达式逐步解析和求值。这种模式适用于需要解析和执行语法规则的场景。 UML图 组成角色…

定义

解释器模式是一种行为设计模式,用于定义一种语言的文法,并提供一个解释器来处理该语言的句子。它通过为每个语法规则定义一个类,使得可以将复杂的表达式逐步解析和求值。这种模式适用于需要解析和执行语法规则的场景。

UML图

在这里插入图片描述

组成角色

  • AbstractExpression(抽象表达式):声明一个解释操作的接口,所有具体表达式都需要实现这个接口。
  • TerminalExpression(终结符表达式):实现了抽象表达式接口,代表文法中的基本元素,通常用于处理终结符。
  • NonTerminalExpression(非终结符表达式):也实现了抽象表达式接口,通常用于处理文法中的组合结构,调用一个或多个终结符表达式。
  • Context(上下文):存储在解释过程中需要的全局信息,通常包含解释器所需的数据。

工作流程

  1. 客户端创建上下文对象并定义一个具体的表达式树。
  2. 通过上下文,将输入的句子传递给解释器,解释器会解析该句子。
  3. 解析过程通过调用表达式对象的解释方法,逐步解析并返回结果。

代码

import java.util.HashMap;
import java.util.Map;// AbstractExpression
interface Expression {int interpret(Map<String, Integer> context);
}// TerminalExpression
class Number implements Expression {private final int number;public Number(int number) {this.number = number;}@Overridepublic int interpret(Map<String, Integer> context) {return number;}
}// NonTerminalExpression
class Add implements Expression {private final Expression left;private final Expression right;public Add(Expression left, Expression right) {this.left = left;this.right = right;}@Overridepublic int interpret(Map<String, Integer> context) {return left.interpret(context) + right.interpret(context);}
}class Subtract implements Expression {private final Expression left;private final Expression right;public Subtract(Expression left, Expression right) {this.left = left;this.right = right;}@Overridepublic int interpret(Map<String, Integer> context) {return left.interpret(context) - right.interpret(context);}
}// Client code
public class InterpreterPatternDemo {public static void main(String[] args) {// 1 + 2 - 3Expression expression = new Subtract(new Add(new Number(1), new Number(2)), new Number(3));// 计算Map<String, Integer> context = new HashMap<>();int result = expression.interpret(context);System.out.println("Result: " + result); // Output: Result: 0}
}

优点

  • 易于扩展:可以通过增加新的终结符和非终结符类来扩展语言。
  • 清晰的结构:每个表达式都有对应的类,使得文法和解析逻辑清晰分离。

缺点

  • 类的数量增多:对于复杂文法,可能会导致类的数量激增,管理困难。
  • 性能问题:对于复杂的解析过程,可能会导致性能下降,因为每次解释都需要创建新的对象。

使用场景

  • 当需要定义一种语言的文法并需要解释它时,例如简单编程语言、正则表达式的解释等。
  • 当文法规则相对简单且可扩展时,适合使用解释器模式。
http://www.yayakq.cn/news/854782/

相关文章:

  • 网站制作费用多少钱做招聘信息的网站有哪些内容
  • 网络营销网站规划建设下关网站建设
  • dns加网站做资源网站怎么赚钱
  • logo设计网站国外写字楼装修风格
  • 徐州建筑网站营销案例100例小故事
  • 阿里云做网站怎么样wordpress 添加水印
  • 电商网站布局设计国外html5网站欣赏
  • 最好的自助建站系统店铺设计费用怎么收费
  • dz网站如何搬家外贸平台有哪些比较好 免费
  • 印度做杂质的网站浉河网站建设
  • 外贸网站建设 佛山软件开发具体是做什么
  • 网站风格包括什么网站建设市场推广招聘
  • 东莞网站建设+旅游大美互助app
  • 谁有做开档棉裤的网站啊设计制作长方体形状的包装纸盒视频
  • 网站设计项目策划ppt域名备案代理
  • 一流的上海网站建设公司wordpress免费企业网站
  • 有哪些官方网站做的比较好河南建设168工程网官方网站
  • 仿土豆网站源码建网站模板
  • 匿名聊天网站开发凡科外贸网站建设
  • 网站建设与维护怎么学建筑网站的功能模块
  • 深圳做公司英文网站多少钱广西壮族自治区住房和城乡建设厅
  • 南部建设局网站google chrome 网络浏览器
  • 网站开发最佳组合温州网站制作案例
  • 长沙公司做网站找哪个公司好字节跳动员工人数2019
  • 关于申请建设网站申请报告广东东远建设工程管理有限公司网站
  • 浦口国家建设部网站重庆市工程建设招投标交易中心网站
  • 明星网页设计模板图片南京怎样优化关键词排名
  • 六安哪家做网站不错推广网络网站
  • 推广网站优化怎么做泰安城建吧
  • 做任务有奖励的网站廊坊网站建设精灵