《研磨设计模式》chap18 状态模式state(2)模式介绍
生活随笔
收集整理的這篇文章主要介紹了
《研磨设计模式》chap18 状态模式state(2)模式介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 狀態的平行性
與策略模式的不同,策略模式的行為是平等的
2. 上下文和狀態處理對象
上下文是持有狀態的對象,但是上下文自身并不處理跟狀態相關的行為,而是把處理狀態的功能委托給了狀態對應的狀態處理類來處理。
在具體的狀態處理類中經常需要獲取上下文自身的數據,甚至在必要的時候會回調上下文的方法,因此,通常將上下文自身當作一個參數傳遞給具體的狀態處理類。
客戶端一般只和上下文交互。客戶端可以用狀態對象來配置一個上下文,一旦配置完畢,就不再需要和狀態對象打交道了。客戶端通常不負責運行期間狀態的維護,也不負責決定后續到底使用哪一個具體的狀態處理對象。
3. 狀態的維護和轉換控制
VoteManager類保存數據,讓狀態自己維護管理。
4. 狀態存儲到數據庫中
不是存在Context上下文中,存在數據庫。
eg.
//直接從數據庫獲取該用戶對應的下一個狀態的狀態編碼 String stateid ="從數據庫中獲取這個值"; //開始根據狀態編碼來創建需用的狀態對象 //根據狀態編碼去獲取相應的類 string className ="根據狀態編碼去獲取相應的類";/使用反射創建對象實例,簡單示意一下 Class c = Class.forName (className) ;state = (VoteState)c.newInstance ();總結
以上是生活随笔為你收集整理的《研磨设计模式》chap18 状态模式state(2)模式介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《研磨设计模式》chap18 状态模式s
- 下一篇: 《研磨设计模式》chap18 状态模式s