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

苏州书生商友专业做网站wordpress爆破

苏州书生商友专业做网站,wordpress爆破,网站内做动图,wordpress 3d云标签Linux C 058-设计模式之解释器模式 本节关键字#xff1a;Linux、C、设计模式、解释器模式 相关库函数#xff1a; 概念 解释器模式#xff08;Interpreter Pattern#xff09;提供了评估语言的语法或表达式的方式#xff0c;它属于行为型模式。 解释器模式用于构建一…Linux C 058-设计模式之解释器模式 本节关键字Linux、C、设计模式、解释器模式 相关库函数 概念 解释器模式Interpreter Pattern提供了评估语言的语法或表达式的方式它属于行为型模式。 解释器模式用于构建一个能够解释特定语言或文法的句子的解释器。解释器模式给定一个语言定义它的文法的一种表示并定义一个解释器这个解释器使用该表示来解释语言中的句子。 这种模式被用在 SQL 解析、符号处理引擎等。 优缺点 优点 可扩展性好容易添加新的解释表达式的方式。 灵活性可以根据需要轻松扩展或修改文法。 易于实现简单文法对于简单的语言实现起来相对容易。 缺点 使用场景有限只适用于适合使用解释的简单文法。 维护困难对于复杂的文法维护和扩展变得困难。 类膨胀可能会产生很多类每个文法规则对应一个类。 递归调用解释器模式通常使用递归调用这可能难以理解和跟踪。 使用场景 当某一特定类型的问题频繁出现并且可以通过一种简单的语言来表达这些问题的实例时。 在需要解释执行语言中的句子时考虑使用解释器模式。 确保文法简单以避免系统变得过于复杂。 角色说明 解释器模式包含以下几个主要角色 抽象表达式Abstract Expression定义了解释器的抽象接口声明了解释操作的方法通常是一个抽象类或接口。 终结符表达式Terminal Expression实现了抽象表达式接口的终结符表达式类用于表示语言中的终结符如变量、常量等并实现了对应的解释操作。 非终结符表达式Non-terminal Expression实现了抽象表达式接口的非终结符表达式类用于表示语言中的非终结符如句子、表达式等并实现了对应的解释操作。 上下文Context包含解释器之外的一些全局信息在解释过程中提供给解释器使用通常用于存储变量的值、保存解释器的状态等。 客户端Client创建并配置具体的解释器对象并将需要解释的表达式传递给解释器进行解释。 示例代码 #include iostream #include string using namespace std;class Expression { public:Expression() {}bool interpret(string context); }; class TerminalExpression : public Expression { public:TerminalExpression() {}TerminalExpression(string data) {m_Data data;}bool interpret(string context) {if (context.find(m_Data) ! -1)return true;return false;} private:string m_Data; }; class OrExpression : public Expression { public:OrExpression() {}OrExpression(Expression *expr1, Expression *expr2) {m_Expr1 expr1;m_Expr2 expr2;}bool interpret(string context) {return m_Expr1-interpret(context) || m_Expr2-interpret(context);} private:Expression *m_Expr1;Expression *m_Expr2; }; class AndExpression : public Expression { public:AndExpression() {}AndExpression(Expression *expr1, Expression *expr2) {m_Expr1 expr1;m_Expr2 expr2;}bool interpret(string context) {return m_Expr1-interpret(context) m_Expr2-interpret(context);} private:Expression *m_Expr1;Expression *m_Expr2; }; class InterpreterPatternDemo { public:InterpreterPatternDemo() {}//规则Robert 和 John 是男性static Expression *getMaleExpression() {Expression *rober new TerminalExpression(Robert);Expression *john new TerminalExpression(John);return (Expression *)(new OrExpression(rober, john));}//规则Julie 是一个已婚的女性static Expression *getMarriedWomanExpression() {Expression *julie new TerminalExpression(Julie);Expression *married new TerminalExpression(Married);return (Expression *)(new AndExpression(julie, married));} }; // int main(int argc, char *argv[]) {Expression *isMale InterpreterPatternDemo::getMaleExpression();Expression *isMarriedWoman InterpreterPatternDemo::getMarriedWomanExpression();cout John is male? isMale-interpret(John);cout Julie is a married women? isMarriedWoman-interpret(Married Julie);delete isMale;delete isMarriedWoman;return 0; } /* John is male? true Julie is a married women? true */
http://www.sczhlp.com/news/172949/

相关文章:

  • php网站开发ppt专业网站建设86215
  • 做零食的网站有哪些做网站泊头
  • 图书馆网站开发的前期准备小程序开发平台怎么选择
  • 烟台高新区建设局网站上海中学官网登录
  • 接技术标做网站app跟网站的区别
  • Go语言之接口与多态 -《Go语言实战指南》 - 指南
  • 我的联想小新潮7000笔记本的优化
  • 二分图最大匹配 输出具体方案
  • 中科 网站会员注册系统建设wordpress使用cdn菜单消失
  • 网站做的好久久建筑网会员登录没有签到得金币了吗
  • 南宁网站建设公网站后台账户密码
  • 网站建设 中企动力 顺德中国空间站天宫课堂
  • 邢台网站建设哪家专业北京市朝阳区网站制作公司
  • 名片式网站模板品牌广告视频
  • 织梦网站源码转换成wordpress中小企业网站制作过程中要注意什么
  • 如何建导航网站珠海做网站最好的公司有哪些
  • 网站规划与建设的流程与方法 高中信息技术给网站做公正需要带什么
  • 建设网站后如何上线高端网站建设设计公司哪家好
  • 国外订房网站怎么和做河南省建设集团有限公司网站
  • pc网站优化排名软件网站开发 外包公司
  • 学网站设计淘宝关键词排名
  • 惠州个人做网站联系人seo短视频网页入口引流怎么做
  • 做哪个网站最简单励志网站织梦源码
  • 单页网站 jquery农业公司网站建设方案
  • 网站建设czzmcn网站后台挂马怎么处理
  • 老板让我做网站负责人wordpress同步微博内容
  • 建设部人才中心网站网站文档怎么加图片不显示不出来
  • 网站开发图片文字平面设计app软件有哪些
  • 如何做网站维护京东客网站怎么做的
  • 桂林市自来水公司网站做网站绿色和什么颜色搭配