總結:狀态模式其實就是把對象的各種狀态抽離出去成為一組互相獨立可互相替換的對象,各個狀态中滿足條件則執行目前行為,不滿足則轉入下一個狀态。
類似于政策模式,不過政策模式是客戶指定目前執行某一政策,狀态模式是預設執行某一狀态,然後在狀态中判斷不符合要求就自動轉下一個狀态。
優點:避免了if else判斷,維護起來友善,擴充起來友善,符合單一原則。
缺點:環境類和狀态類互相依賴;各個條件分散成不同的類,看起來不直覺,并且如果有新的狀态加入,需要修改最後的狀态類(改動很小)。不過比起龐大的條件語句塊,這些缺點都可以忽略。
