状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。
#include <QCoreApplication>
#include <iostream>
using namespace std;
class NetworkState{
public:
NetworkState* pNext;
virtual void Operation1()=0;
virtual void Operation2()=0;
~NetworkState(){}
};
class OpenState:public NetworkState{
public:
static NetworkState* getInstance(){
if(instance == NULL){
instance = new OpenState;
}
return instance;
}
void Operation1(){
cout<<"OpenState Operation1"<<endl;
pNext = OpenState::getInstance();
}
void Operation2(){
cout<<"OpenState Operation2"<<endl;
pNext = OpenState::getInstance();
}
private:
static NetworkState* instance;
}