这个模式常用于正则表达式等
interpreter.h
#pragma once
#include <QDebug>
class CVariable;
class CVarientContext
{
public:
CVarientContext(){}
virtual ~CVarientContext(){}
virtual void addVarient(CVariable* key,int val) = 0;
virtual void removeVarient(CVariable* key) = 0;
virtual void setVarient(CVariable* key,int val) = 0;
virtual int getVarient(CVariable* key) const = 0;
protected:
QMap<CVariable* ,int> m_mapVar;
};
class CDataVarient : public CVarientContext
{
public:
CDataVarient(){}
virtual ~CDataVarient(){}
void addVarient(CVariable* key,int val)
{
m_mapVar.insert(key,val);
}
void removeVarient(CVariable* key)
{
m_mapVar.re