close

 

狀態模式:將狀態的行為,分別實作在子類別,可以消除大量的狀態判斷的程式碼

狀態模式

假設今天有個"連線"類別根據自己的狀態會分別作不同的操作行為: 執行"狀態A" -> 執行"狀態B" -> 執行"狀態結束"

以下程式碼範例:

Status

狀態A:

狀態A做完,轉換成"狀態B"

StatusA

狀態B:

狀態B做完,轉換"狀態結束"

StatusB

狀態結束:

StatusFinish

連線:

物件建立時,初始化狀態A

Connection

 

以下為Client端的Code:

Executor  

這樣如果要新加新的狀態,也就非常容易。

 

 

 

arrow
arrow
    創作者介紹
    創作者 KC 的頭像
    KC

    Programmer in Taiwan

    KC 發表在 痞客邦 留言(0) 人氣()