美文网首页
“领域规则”模式

“领域规则”模式

作者: timber_wu | 来源:发表于2016-10-09 18:16 被阅读117次

在特定领域中,某些变化虽然频繁,但可以抽象为某种规则。这时候,结合特定领域,将问题抽象为语法规则,从而给出在该领域下的一般性解决方案。

典型模式

  • Interpreter

Interpreter 解析器


动机

  • 在软件构建过程中,如果某一特定领域的问题比较复杂,类似的结构不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。
  • 在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。

模式定义

  • 给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句子。

结构

类图

结构中的角色

AbstractExpression:

  • 声明一个抽象的Interpret方法,抽象语法树中所有的节点都必须实现该抽象方法。

TerminalExpression:

  • 实现和语法中末端符号相关的Interpret方法。
  • 在每个句子的末端符号中均需要一个TerminalExpression实例。

NonterminalExpression:

  • 另外一个实现了AbstractExpression 接口的类,用来处理语法树中非末端节点的语法。
  • 它含有下一个AbstractExpression(s)的引用,调用它每个子节点的Interpret方法。

Context:

  • Interpreter方法所需要的信息的容器,该信息对Interpreter而言全局可见。充当几个AbstractExpresssion 实例之间的通讯频道。

要点总结

  • Interpreter模式的应用场合是interpreter模式应用中的难点,只有满足“业务规则频繁变化,且类似的模式不断重复出现,并且容易抽象为语法规则的问题”才适合使用Interpreter模式。
  • 使用Interpreter模式来表示文法规则,从而可以使用面向对象技巧来方便地“扩展”文法。
  • Interpreter模式比较适合简单的文法表示,对于复杂的文法表示,Interpreter模式会产生比较大的类层次结构,这时候就不应该采用Interpreter模式了。对于复杂的问法表示需要求助于语法分析生成器这样的标准工具。

相关文章

  • “领域规则”模式

    在特定领域中,某些变化虽然频繁,但可以抽象为某种规则。这时候,结合特定领域,将问题抽象为语法规则,从而给出在该领域...

  • “领域规则”模式

    “领域规则”模式 解析器模式 模式定义 类图 要点总结

  • (Boolan)C++设计模式 <十三> ——解析器

    “领域规则”模式 在特定领域内,某些变化虽然频繁,但可以抽象为某种规则。这时候,结合特定领域,将问题抽象为语法规则...

  • 模式规则和静态模式规则

    首先提一下隐式规则 模式规则 静态模式规则

  • 学思悟行第3篇

    范式转移 何为范式?指固有的人们习以为常的模式或者规则,范式转移就是指一个领域出现了新的突破,打破了原有的规则、模...

  • 爱情是一个“绝对”领域

    领域从生物学概念和数学概念的多种角度解释出来,就是规则区域。有特定规则地区域就是领域,在爱情领域中,唯一的规则就是...

  • 武志红心理学本周收获

    【关系怎样疗愈一个人】 一个人的世界分为社会领域和私人领域。 社会领域多用权力规则,私人领域多用珍视规则。用反了,...

  • 《可复制的领导力》 Day9

    创业者、规则、海星模式 创业者:创业型公司,理论上员工都是创业者,划分模块,各显其能,让自己成为自己领域的“老板”...

  • 战术模式简介

    战术模式包含若干构造块模式,以便能够构建有效的领域模型。 战术模式严重依赖于领域模型和通用语言,通过技术模式将领域...

  • 初次调研陌生行业总结

    面对完全陌生的领域/行业,需要调研出市场情况、行业规则并且把公司现有的资源套进去、探讨可行的经营模式。我很想用「倒...

网友评论

      本文标题:“领域规则”模式

      本文链接:https://www.haomeiwen.com/subject/yzneyttx.html