0.领域规则模式
在特定领域中,某些变化虽然频繁,但可以抽象
1.基本介绍
2.动机
- 在软件构建过程中,如果某一特定领域的问题比较复杂,类似结构不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化
- 在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的
3.类图
- 1) Context: 是环境角色,含有解释器之外的全局信息.
- 2) AbstractExpression: 抽象表达式, 声明一个抽象的解释操作,这个方法为抽象语法树中所有的节点所共享
- 3) TerminalExpression: 为终结符表达式, 实现与文法中的终结符相关的解释操作
- 4) NonTermialExpression: 为非终结符表达式,为文法中的非终结符实现解释操作
- 5) 说明: 输入Context 和 TerminalExpression 信息通过Client 输入即可
4.案例:表达式求值
通过解释器模式来实现四则运算,如计算a+b-c的值,具体要求
- 1) 先输入表达式的形式,比如 a+b+c-d+e, 要求表达式的字母不能重复
- 2) 在分别输入a ,b, c, d, e 的值
- 3) 最后求出结果: