核心: 把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化
例子:
class State //状态接口
{
public:
virtual void show() = 0;
};
class NormalState: public State //正常状态
{
public:
virtual void show()
{
cout << "Normal state, communicate success." << endl;
}
};
class CritcalState: public State //紧急状态
{
public:
virtual void show()
{
cout << "Critcal state, communicate failed." << endl;
}
};
class Communicate
{
public:
void criticalState() //紧急状态下对应的操作
{
CritcalState().show();
}
void normalState() //正常状态下对应的操作
{
NormalState().show();
}
};
int main()
{
Communicate c;
c.criticalState();
c.normalState();
return 0;
}
本文介绍了一种通过状态模式简化复杂判断逻辑的方法,并提供了具体的代码实现案例。通过将状态的判断逻辑转移到一系列类中,该模式有效地降低了代码的复杂度。
1019

被折叠的 条评论
为什么被折叠?



