命令模式
简介
参考链接
状态模式,其实就是状态机的概念,可以参考我之前的状态机blog 链接
TODO 状态模式和策略模式有很大的相同???
UML类图
代码示例
#include <iostream>
#include <string>
class Status
{
public:
Status() {}
virtual void ShowStepTip() = 0;
};
class StatusA: public Status
{
public:
void ShowStepTip() {
std::cout << "in StatusA, todo..." << std::endl;
}
};
class StatusB: public Status
{
public:
void ShowStepTip() {
std::cout << "in StatusB, todo..." << std::endl;
}
};
class StatusC: public Status
{
public:
void ShowStepTip() {
std::cout << "in StatusC, todo..." << std::endl;
}
};
class Context
{
public:
void SetStatus(Status *s) { m_pStatus = s; }
void ShowCurTip() { m_pStatus->ShowStepTip(); }
private:
Status *m_pStatus;
};
int main()
{
Status *statusA = new StatusA();
Status *statusB = new StatusB();
Status *statusC = new StatusC();
Context *context = new Context();
context->SetStatus(statusA);
context->ShowCurTip();
context->SetStatus(statusB);
context->ShowCurTip();
context->SetStatus(statusC);
context->ShowCurTip();
context->SetStatus(statusB);
context->ShowCurTip();
delete context;
delete statusA;
delete statusB;
delete statusC;
return 0;
}