clevercode最近在研究狀態設計模式,發現狀態設計模式能夠解決很多設計問題。
當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。
2.1 上下文環境(context):它定義了客戶程式需要的介面並維護乙個具體狀態角色的例項,將與狀態相關的操作委託給當前的concrete state物件來處理。
2.2 抽象狀態(state):定義乙個介面以封裝使用上下文環境的的乙個特定狀態相關的行為。
2.3 具體狀態(concrete state):實現抽象狀態定義的介面。
設計乙個燈開關控制器,能夠實現燈的開關。
//開關控制器
class lampswitch
public function on()
public function off()
/*}}}*/
public function setstate(state $state)
/*}}}*/
}/*}}}*/
//開啟狀態
class onstate implements state
//開燈
public function on()
//關燈
public function off()
}/*}}}*/
//關閉狀態
class offstate implements state
//開燈
public function on()
//關燈
燈的開關狀態 模擬
有 n 個燈放在一排,從 l 到 n 依次順序編號。有 n 個人也從 1 到 n 依次編號。l 號將燈全部關閉,2 號將凡是 2 的倍數的燈開啟 3 號將凡是 3 的倍數的燈作相反處理 該燈如為開啟的,則將它關閉 如關閉的,則將它開啟 以後的人都和 3 號一樣,將凡是自己編號倍數的燈作相反處理。程式...
C 紅綠狀態燈
1.在label裡 畫圓,存在窗體重新整理會丟失畫。public void setshowconnectstatus label lbl,bool isok 2.在控制項paint事件裡畫,invalidate 重新整理。private bool isrotaryconnectok false pr...
狀態模式(State Pattern) 事物狀態
前陣子被大師帶著寫介面,還裝逼學了一下react 這裡是我的react部落格 在傳統的開發中,通常 ui 上諸多狀態變化會讓維護應用的狀態變得很困難和複雜。react 通過檢測狀態變化來每次重新渲染虛擬 dom 節點,然後按需自動更新真實節點,這種方式可以讓開發人員可以簡單地專注在應用的狀態上。在r...