(C )設計模式之狀態模式

2022-02-06 02:59:50 字數 1201 閱讀 8729

1.狀態模式

當乙個物件的內在狀態改變時允許改變其行為,這個物件看起像是改變了其類。

*狀態模式主要解決的是當控制乙個物件的狀態轉換的條件表示式過於複雜時,可以將狀態的判斷邏輯轉移到表示不同狀態的一系列類中,將複雜的判斷邏輯簡化。

*將特定與狀態相關的行為區域性化,並且將不同狀態的行為分割開來。

*當乙個物件的行為取決於它的狀態,並且它必須執行時刻根據狀態改它的行為時,就可以考慮狀態模式。

狀態模式

}//狀態的抽象介面

public

abstract

class

state

//狀態類

public

class

forenoonstate : state

else}}

public

class

noonstate : state

else}}

public

class

afternoonstate : state

else}}

public

class

eveningstate : state

else

else}}

}public

class

sleepingstate : state

}public

class

reststate : state

}//工作類

public

class

work

private

double

hour;

public

double

hour

set

}private

bool finish = false

;

public

bool

taskfinshed

set

}public

void

setstate(state s)

public

void

writeprogram()}}

C 設計模式之狀態模式

狀態模式,當乙個物件的內在狀態改變時,語序改變其行為,這個物件看起來像是改變了其類 include using namespace std class state class forenoon class noon class afternonn class evening class gohome...

c 設計模式之狀態模式

狀態模式思想 定義乙個狀態類,裡面可以實現多種狀態的轉換,每個狀態由乙個單獨類來判斷和實現,物件裡有設定更新狀態的方法,獲得當前狀態的方法來跳轉到其他狀態類的方法中 因為setstate的時候把state的狀態變為另乙個子類,然後呼叫子類自己的判斷方法,滿足條件,則用new乙個新狀態代替原來狀態來跳...

C 設計模式之 狀態模式(State)

當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類 狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以複雜的判斷邏輯簡化。abstract class state class concretestatea...