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

做网店好还是网站好西安软件公司招聘信息

做网店好还是网站好,西安软件公司招聘信息,tcn短网址在线生成,哪些网站做物流推广比较好目录 1、解释器模式(Interpreter Pattern)含义 2、解释器模式的UML图学习 3、解释器模式的应用场景 4、解释器模式的优缺点 5、C实现解释器模式的实例 1、解释器模式(Interpreter Pattern)含义 解释器模式(Interp…

目录

1、解释器模式(Interpreter Pattern)含义

2、解释器模式的UML图学习

3、解释器模式的应用场景

4、解释器模式的优缺点

5、C++实现解释器模式的实例


1、解释器模式(Interpreter Pattern)含义

解释器模式(Interpreter Pattern),给定一个语言,定义它的方法的一种表示,并定义一个解释器,这个解释适使用该表示来解释语言中的句子。【DP】

解释器模式(Interpreter Pattern)是一种行为型设计模式,它定义了一种语言的文法,并且建立一个解释器来解释该语言中的句子。通过使用解释器模式,可以将一个复杂的问题分解成一系列简单的表达式,然后通过解释器逐个解释这些表达式。

2、解释器模式的UML图学习

 

解释器模式主要包含以下几个角色:

(1)抽象表达式(Abstract Expression):声明了一个抽象的解释操作,所有具体表达式都必须实现这个接口。

(2)终结符表达式(Terminal Expression):表示语法规则中的终结符,它是解释器模式中最基本的元素。

(3)非终结符表达式(Non-terminal Expression):表示语法规则中的非终结符,它由终结符和其他非终结符组成。

(4)上下文(Context):包含解释器之外的一些全局信息。

3、解释器模式的应用场景

(1)当有一个语言需要解释执行,并且可以将该语言的句子表示为一个抽象语法树时。

(2)当需要对语言进行扩展或修改时,可以考虑使用解释器模式。

4、解释器模式的优缺点

(1)优点:

        1)可扩展性:可以方便地增加新的表达式和解释器。

        2)易于实现语法规则:可以通过解释器模式直接定义语法规则,而无需使用复杂的编译器或解析器。

(2)缺点

        1)可能导致类的数量增加:每个文法规则都需要一个具体的表达式类,可能会导致类的数量过多。

        2)可能导致性能问题:解释器模式通常使用递归调用来解释表达式,可能会导致性能问题。

5、C++实现解释器模式的实例


#include <iostream>
#include <unordered_map>// 抽象表达式
class Expression 
{
public:virtual int interpret(std::unordered_map<char, int>& context) = 0;
};// 终结符表达式
class TerminalExpression : public Expression 
{
private:char variable;public:TerminalExpression(char var) : variable(var) {}int interpret(std::unordered_map<char, int>& context) override {return context[variable];}
};// 非终结符表达式
class NonterminalExpression : public Expression 
{
private:Expression* left;Expression* right;public:NonterminalExpression(Expression* l, Expression* r) : left(l), right(r) {}int interpret(std::unordered_map<char, int>& context) override {return left->interpret(context) + right->interpret(context);}
};int main() 
{std::unordered_map<char, int> context;context['a'] = 5;context['b'] = 10;// 构建语法树Expression* expression = new NonterminalExpression(new TerminalExpression('a'),new TerminalExpression('b'));// 解释执行表达式int result = expression->interpret(context);std::cout << "解释结果: " << result << std::endl;delete expression;return 0;
}

在上述示例中,抽象表达式(Expression)定义了一个抽象的解释操作,所有具体表达式都必须实现这个接口。

终结符表达式(Terminal Expression)表示语法规则中的终结符,它是解释器模式中最基本的元素。

非终结符表达式(Non-terminal Expression)表示语法规则中的非终结符,它由终结符和其他非终结符组成。

上下文(Context)包含解释器之外的一些全局信息。

http://www.yayakq.cn/news/658129/

相关文章:

  • 南宁网站建设策划方案个人能建电商网站吗
  • 平面设计最常用的网站如何向百度提交站点收录信息
  • 计算机网站建设实验总结做网站一个月赚多少
  • 月付购物网站建站微网站免费建设平台
  • 小程序致美发型设计搜索引擎优化的定义是什么
  • 先申请域名后做网站电子元器件商城官网
  • 曲阜网站建设价格西安seo专员
  • 网站建设中一览二栏什么意思大数据平台怎么搭建
  • 网页策划书 网站建设定位seo门户 site
  • 百度做公司网站需要多少钱wordpress导出图片
  • 网上学做网站广告网站建设制作设计
  • wordpress手机网站福建省住房和建设厅网站
  • visio画网站开发类图营销策划公司简介
  • 河南省建设厅网网站健康养生网站模板
  • 如何软件网站优化公司广州网站建设88
  • 简洁物流网站模板seo网络推广是什么意思
  • 汕头高端模板建站ui网页设计高手
  • 建材有限公司光速东莞网站建设高端网站设计公司名单
  • 帝国 网站搬家源码论坛网站需要多大的空间
  • 如何快速提升网站pr网站建设公司对比
  • 四川住房和城乡建设厅网站开平网页设计
  • 潍坊做公司网站旅游网站开发的意义是什么
  • 网站怎么注册域名做网站哪一家比较好
  • 做网站费用怎么入账公司宣传片视频怎么做
  • 网站后台管理系统设计推广平台文案
  • 毕节市城乡住房建设网站wordpress 中文 字体大小
  • 安阳网站建设开发semiconductor是什么意思
  • 权威发布图片红字WordPress速度优化2019
  • 商洛免费做网站青岛一点两区救治医院
  • 自己买服务器可以搭建网站吗wordpress免费中文主题分享