设计模式复习-解释器模式
生活随笔
收集整理的這篇文章主要介紹了
设计模式复习-解释器模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#pragma once
#include "stdafx.h"
#include<map>
#include<set>
#include<list>
#include<string>
#include<iostream>
using namespace std;/*設計模式-解釋器模式(interpreter)給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。
如果一種特定類型的問題發生的頻率足夠高,那么可能就值得將該問題的各個實例表示為一個簡單語言中的句子。
這樣就可以構建一個解釋器,該解釋器通過解釋這些句子來解決問題(比如正則表達式)。
*/class CContext {//解釋器之外的一些全局信息
public:string mstrInput;CContext(const string &strInput) {mstrInput = strInput;}
};class CAbstractExpression {//抽象解釋操作
public:virtual void Interpret(CContext *pContext) = 0;
};class ExpressionA : public CAbstractExpression {//表達式A
public:void Interpret(CContext *pContext) {cout << "ExpressionA:" << pContext->mstrInput << endl;}
};class ExpressionB : public CAbstractExpression {//表達式B
public:void Interpret(CContext *pContext) {cout << "ExpressionB:" << pContext->mstrInput << endl;}
};int main() {list<CAbstractExpression*>lstWork;lstWork.clear();lstWork.push_back(new ExpressionA());lstWork.push_back(new ExpressionB());lstWork.push_back(new ExpressionA());lstWork.push_back(new ExpressionB());CContext *pContext = new CContext("test");for each(CAbstractExpression * index in lstWork) {index->Interpret(pContext);delete index;}delete pContext;getchar();return 0;
}
總結
以上是生活随笔為你收集整理的设计模式复习-解释器模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式复习-享元模式
- 下一篇: 设计模式复习-访问者模式