特定领域,某些变化虽然频繁,但是可以抽象为某种规则;结合特定领域,将问题抽象为语法规则,从而给出该领域的一般性解决方案。
interpreter属于"领域规则"模式。
motivation:软件构件过程中,对于某一特定领域的问题比较复杂,类似结构重复出现;可以将特定领域的问题表达为语法规则下的句子,然后使用解释器来解释这样的句子。
key interface or class:
1. 一定会有个terminal类继承abstractExpression类。
feature: 对规则进行抽像。
structure:
codes:
class Expression{
public:
virtual int interpreter(map<char,int> var)=0;
virtual ~Expression(){};
}
//变量表达式
class VarExpression: public Expression
{
char key;
public:
VarExpression(const VarExpression & key){
this->key = key;
}
int interpreter(map<char,int> var) override {
return v