- 詳見iOS App的設(shè)計(jì)模式開發(fā)中對(duì)State狀態(tài)模式的運(yùn)用
- 摘錄如下:
- 狀態(tài)模式:允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為。對(duì)象看起來似乎修改了它的類
狀態(tài)模式使用場景
一個(gè)對(duì)象的行為取決于它的狀態(tài), 并且它必須在運(yùn)行時(shí)刻根據(jù)狀態(tài)改變它的行為灵汪。
代碼中包含大量與對(duì)象狀態(tài)有關(guān)的條件語句:一個(gè)操作中含有龐大的多分支的條件(if else(或switch case)語句垒酬,且這些分支依賴于該對(duì)象的狀態(tài)。這個(gè)狀態(tài)通常用一個(gè)或多個(gè)枚舉常量表示翠肘。通常 , 有多個(gè)操作包含這一相同的條件結(jié)構(gòu)檐束。 State模式將每一個(gè)條件分支放入一個(gè)獨(dú)立的類中。這使得你可以根據(jù)對(duì)象自身的情況將對(duì)象的狀態(tài)作為一個(gè)對(duì)象束倍,這一對(duì)象可以不依賴于其他對(duì)象而獨(dú)立變化被丧。