#include<iostream>
using namespace std;
class Context
{
public:
Context(int num)
{
m_num = num;
}
void setNum(int num)
{
m_num = num;
}
void setRes(int res)
{
m_res = res;
}
int getNum()
{
return m_num;
}
int getRes()
{
return m_res;
}
private:
int m_num;
int m_res;
};
class Expression
{
public:
virtual void interpreter(Context *context) = 0;
};
class Plus :public Expression
{
public:
virtual void interpreter(Context *context)
{
int num = context->getNum();
num++;
context->setRes(num);
}
};
class Minus :public Expression
{
public:
virtual void interpreter(Context *context)
{
int num = context->getNum();
num--;
context->setRes(num);
}
};
void main()
{
Context *context = NULL;
Expression *expression = NULL;
context = new Context(20);
expression = new Plus;
expression->interpreter(context);
cout << context->getRes() << endl;
delete expression;
expression = new Minus;
expression->interpreter(context);
cout << context->getRes() << endl;
}
行为型模式之解释器模式
最新推荐文章于 2024-09-02 00:00:00 发布