狀態模式:允許對象在內部狀態改變時改變它的行爲,對像看起來好像修改了它的類。
查看源代碼可知,cocos2d也使用了狀態模式,
class CC_DLL CCDirector : public CCObject, public TypeInfo{
/* The running scene */
CCScene *m_pRunningScene;
/* will be the next 'runningScene' in the next frame
nextScene is a weak reference. */
CCScene *m_pNextScene;
void runWithScene(CCScene *pScene);
void replaceScene(CCScene *pScene);
}
CCScene 就代表了狀態。