小A:“狀態(tài)模式由哪些角色組成吶?”
大B:“狀態(tài)模式可以有效的替換充滿在程序中的ifelse語句:將不同條件下的行爲(wèi)封裝在一個類裡面,再給這些類一個統(tǒng)一的父類來約束他們。狀態(tài)模式是由下面幾種角色組成:1、使用環(huán)境(Context)角色:客戶程序是通過它來滿足自己的需求。它定義了客戶程序需要的接口;並且維護(hù)一個具體狀態(tài)角色的實(shí)例,這個實(shí)例來決定當(dāng)前的狀態(tài)。2、狀態(tài)(State)角色:定義一個接口以封裝與使用環(huán)境角色的一個特定狀態(tài)相關(guān)的行爲(wèi)。3、具體狀態(tài)(ConcreteState)角色:實(shí)現(xiàn)狀態(tài)角色定義的接口。結(jié)構(gòu)非常簡單也與策略模式非常相似。”