C++ State 設計模式

C++ State 設計模式

 

 

演示源代碼下載

 

 

 設計模式看的太快不利於消化,一方面是最近比較忙,另一方面是想讓自己多消化消化自己所看的東西。所以本週只看了一個Sate設計模式

 

 

State模式的意圖有2點:

1. 分散邏輯判斷和處理。

對於State來說,無非就是狀態的切換。說白了最終結果和switch/case差不多。對於少量的狀態判斷和邏輯處理,switch還行。但是對於一個較大的項目而且條件判斷比較複雜,這個時候switch不僅效率低下,而且無法控制。State模式巧妙的將邏輯判斷和處理放到狀態對象中,而不是把條件判斷和狀態切換放在Context上下文中,從而分散了邏輯判斷和處理。如果要更改邏輯,Context就不需要改動,只改動State類即可。

2. 去耦。我想這應該是Gof 設計模式的核心。

 

 

類圖如下:

 

                           

 

State模式中,將條件判斷和狀態切換放在State的派生類中。這樣降低了Context邏輯判斷的複雜和依賴,降低了耦合度。

 

 

主要實現代碼:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

輸出如下:

 

Hi, I am in the StateA

Hi, I am in the StateB

Hi, I am in the StateA

 

 

 

演示源代碼下載

 

 

 

 

發佈了102 篇原創文章 · 獲贊 25 · 訪問量 77萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章