# 解析器


## ***领域规则模式***

1. ***什么是领域规则***
   - *在特定领域中, 某些变化虽然频繁, 但可以抽象为某种规则，这时候, 结合特定领域, 将问题抽象为语法规则, 从而给出在该领域下的一般性的解决方案*
2. ***典型模式***
   - *Interpreter*

## ***动机***

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

## ***模式定义***

1. *给定一个语言, 定义他的文法的一种表示, 并定义一种解释器, 这个解释器使用该表示来解释语言中的句子*

## ***要点总结***

1. *Interpreter模式的应用场景是这个模式的一个难点，只有满足 "业务规则频繁变化, 且类似的结构不断重复出现, 并且容易抽象为语言规则的问题"才适合这种模式*
2. *使用这种模式来表示文法规则, 从而可以使用面向对象技巧来方便的 扩展 文法*
3. *Interpreter模式适合简单的文法表示, 对于复杂的文法表示, 这种模式会产生较大的类层次结构，需要求助于第三方的语法分析器*

