允許乙個物件在其內部狀態改變時改變它的行為。
主要組成:
context-環境,上下文,客戶主要使用該類
state-狀態父類或介面
concretestate-具體狀態
using system;
namespace state
public
void
changestate(state state)
public
void
close()
public
void
open()
public
void
currentstate()
}///
/// 狀態父類
///abstract class state
//當前狀態
public
void
currentstate()
public
abstract
void
close(telephonecontext telephone);
public
abstract
void
open(telephonecontext telephone);
}///
/// 關機狀態
/// class closedstate : state
//單件,唯一例項
public
static state instance()
return closedstate;
}public
override
void
close(telephonecontext telephone)
public
override
void
open(telephonecontext telephone)
}///
/// 開機狀態
/// class openedstate : state
//單件,唯一例項
public
static state instance()
return openedstate;
}public
override
void
close(telephonecontext telephone)
public
override
void
open(telephonecontext telephone)}}
呼叫:
using system;
namespace
state}}
結果:
C 設計模式 state 狀態模式
head first 設計模式 中的樣例非常不錯,想製造乙個自己主動交易的糖果機,糖果機有四個狀態 投入錢不足,投入錢足夠,糖果,糖果售罄。糖果機的當前狀態處於當中不同的狀態時,它針對同乙個操作的反映動作也不同。傳統面向過程程式設計會套用if else對不同的狀態下分別處理,邏輯麻煩並且不具有可拓展...
C 設計模式 狀態模式(State)
允許乙個物件在其內部狀態改變時改變它的行為。從而使物件看起來似乎修改了其行為。23種設計模式不比太過於計較它們之間的差異,而更關注他們到底解決的是什麼樣的乙個穩定點和變化點的關係問題。這個時候呢模式之間的關係也理順了,學習模式一那麼生搬硬套,它無非是設計上的演化而已,是一種松耦合設計的原則演化而已。...
設計模式 狀態模式(State)
核心思想就是 當物件的狀態改變時,同時改變其行為。所以,狀態模式就兩點 1 可以通過改變狀態來獲得不同的行為。2 你的好友能同時看到你的變化。state類是個狀態類 這裡用dispenserstate 及實現類 public inte ce dispenserstate public class f...