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...