`
bjsunrose
  • 浏览: 57236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

23-21,解释器模式

 
阅读更多
1、解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,在现在的项目中使用很少。其定义如下:Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language(给定一门语言,定义它的文法一种表示,并定义一个解析器,该解析器使用该标识来解释语言中的句子)

2、解析器的对象:
   一、AbstractExpresion-抽象解析器
   具体的解析任务有各个实现类完成,具体的解析器分别由Terminalexpression和Nonterminalexpression完成。
   二、TerminalExpression-终结符表达式
   实现与文法中的元素相关联的解释操作,通常一个解析器模式中只有一个终结符表达式但是有多个实例,对应不同的终结符。具体我们的例子就是VarExpression类,表达式中的每个终结符都在栈中产生了一个VarExpression对象
   三、NonterminalExpression-非终结符表达式
   文法中的每条规则对应于一个非终结表达式。具体到我们的例子就是加减法规则分别对应到AddExpression和SubExpression连个类,非终结符表达式根据逻辑的复杂程度而增加,原则上每个文法都对应一个非终结符表达式。
   四、Content-环境角色
   具体到我们的例子是用HashMap代替。

3、重新开始不吃晚饭的行动。从前的时候为了减肥,不吃晚饭了。现在因为要学习,读书。暂时把这项规定取消了。现在看书已经进入了状态,那么不吃晚饭的规定又要开始了。应该把不吃晚饭作为一条新的戒律坚持下去。为了身体的健康,不吃晚饭还是比较好的措施。
   不知道为什么,意志力很容易就被打败了。
分享到:
评论

相关推荐

    Java和Android源码设计模式 2017-03-21

    - **解释器模式**:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 #### Android源码设计模式分析 在Android开发中,设计模式的应用同样广泛。以下是一些...

    Android-23种设计模式

    21. **解释器模式(Interpreter)**:给定一个语言,定义它的文法表示,并提供一个解释器来解释该语言中的句子。在Android开发中,表达式计算或者XML布局解析等场景可能用到此模式。 22. **桥接模式(Bridge)**:将...

    23种设计模式-简单通俗的代码解释

    16. **解释器模式**:定义语言的语法,并提供一个解释器来执行该语言。 17. **迭代器模式**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 18. **中介者模式**:用一个中介对象来封装一系列的对象...

    JAVA的21种设计模式

    - **解释器模式**:定义一个语言的文法,并提供一个解释器来处理该语言。 - **迭代器模式**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 - **中介者模式**:定义一个中介对象来简化原本复杂的...

    软件工程实施标准--23种设计模式.zip

    15. 解释器模式:给定一种语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。 16. 状态模式:允许对象在其内部状态改变时改变其行为,对象看起来似乎修改了它的类。 17. ...

    设计模式精解-GoF 23种设计模式

    16. **解释器模式**:定义了一个表达式接口,让相关类实现这个接口来解释特定的语言。 17. **迭代器模式**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 18. **中介者模式**:定义一个中介对象来...

    高清,经典书籍-->设计模式

    16. **解释器模式(Interpreter)**:定义一个语言的文法,并提供一个解释器来处理这种语言的实例。 17. **迭代器模式(Iterator)**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 18. **中介者...

    java代码-23种设计模式(包含uml)

    15. 解释器模式:定义语言的语法,并提供一个解释器来处理这种语言。 16. 迭代器模式:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 17. 中介者模式:用一个中介对象来封装一系列的对象交互,降低...

    设计模式精解-GoF 23 种设计模式解析附 C++实现

    17. **解释器模式**:给定一种语言,定义其语法的一种表示,并提供一个解释器,用于该语言的语句。 18. **访问者模式**:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用...

    java23中设计模式详解

    15. **解释器模式**:定义一个表示语言的文法,并给出一个解释器,用于解释语言中的句子。 16. **迭代器模式**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 17. **中介者模式**:用一个中介对象...

    【Java设计模式】《设计模式之禅》中的23种设计模式.zip

    【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip ...21. 解释器模式 22. 享元模式 23. 桥梁模式

    Java中23种设计模式详解

    解释器模式给定一个语言,定义它的语法的一种表示,并定义一个解释器,该解释器使用该表示解释语言中的句子。这种模式使得语言的解释可以灵活地变化。 13. 迭代子模式(Iterator) 迭代子模式提供一种方法顺序访问...

    23种设计模式23种设计模式

    解释器模式(Interpreter) - **定义**:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 - **应用场景**:适用于需要解析表达式的情况。 #### 16. 迭代器...

    总结23种设计模式-极客学院-课件及源码

    14. **解释器模式**:定义语言的文法,并提供一个解释器来解释该文法。适用于小型领域特定语言(DSL)的实现。 15. **迭代器模式**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。适用于遍历集合...

    C#23种设计模式【完整】.pdf

    15. 解释器模式(Interpreter Pattern):定义一个语言的文法表示,并实现一个解释器来解释该语言中的句子。 16. 中介者模式(Mediator Pattern):定义一个中介对象来封装一组对象之间的交互,使得对象之间的交互...

    设计模式(中文版)--详细讲解各种模式的宝典,可以快速上手

    14. **解释器模式(Interpreter)**:给定一种语言,定义它的文法表示,并提供一个解释器,用于处理这种语言中的句子。 15. **迭代器模式(Iterator)**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层...

    Head-First-Design-Patterns-master设计模式官方源码

    17. 解释器模式(Interpreter Pattern):解释器模式给定一个语言,定义它的文法表示,并提供一个解释器来解析该文法表示并执行语言定义的行为。 18. 职责链模式(Chain of Responsibility Pattern):职责链模式...

    23种设计模式文档

    20. **解释器模式**:给定一个语言,定义它的文法表示,并且提供一个解释器,用于解释语言中的句子。 21. **中介者模式**:定义一个中介对象来简化原本复杂的对象交互关系,使得各个对象之间不必显式引用彼此。 22...

    C++ 23种设计模式.zip

    15. **解释器模式(Interpreter)**:给定一个语言,定义它的文法的一种表示,并且实现一个解释器,该解释器用于该文法的一个特定的解释程序。 16. **迭代器模式(Iterator)**:提供一种方法顺序访问一个聚合对象...

    23个设计模式完整DEMO

    14. **解释器模式**:给定一个语言,定义它的文法表示,并提供一个解释器,用于解释该语言中的句子。 15. **迭代器模式**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 16. **中介者模式**:用一...

Global site tag (gtag.js) - Google Analytics