我讀通過這個link約狀態模式。它看起來像策略模式嗎?這兩種模式之間的確切區別是什麼?戰略設計模式VS狀態設計模式
3
A
回答
3
現狀與對策之間的差別是在意向。通過策略,算法的選擇相當穩定。隨着狀態的發生,「上下文」對象狀態的改變使得它從它的「調色板」中選擇策略對象。
1
策略模式是非常相似的狀態模式。 區別之一在於Context包含作爲實例變量的狀態並且可以有多個任務,其實現可以依賴於狀態 ,而在策略模式策略中作爲參數 傳遞給方法並且上下文對象沒有任何變量來存儲 它。
0
我認爲一個主要的區別是:
-In 國家模式,我們通過上下文本身作爲參數傳遞給國傢俱體類的方法我們需要分配給上下文,它做兩件事:首先它將自己分配給發送的上下文,其次,它執行它的角色。
-In 策略模式,當我們第一次創建它時,我們將策略傳遞給上下文,所以它仍然像整個程序一樣,除非我們將同一變量分配給新的上下文(指針)內存使用「新」併爲其分配新策略,過了一段時間垃圾收集器將使用其分配的策略消除舊的上下文。
更清楚地說,策略對於一個上下文是固定的,一旦分配它就不能改變,即使上下文沒有策略設置器。但是對於狀態,許多狀態可以一個接一個地分配給相同的上下文,因爲上下文具有狀態的setter。
我希望它是有用的。
0
在一種狀態模式中,通常狀態的動作引起狀態的變化;在戰略模式中,戰略的行動不會導致戰略的改變。換句話說,國家的變化在於國家本身;戰略轉變在於外部條件。
相關問題
- 1. 狀態模型設計模式
- 2. 新的設計模式/設計策略
- 3. 設計模式 - 策略模式
- 4. 架構vs設計模式
- 5. 策略設計模式
- 6. Multipe策略設計模式
- 7. 狀態設計模式執行查詢
- 8. 狀態設計模式:錯誤處理
- 9. 狀態模式和域驅動設計
- 10. 狀態設計模式用戶界面
- 11. 多視圖狀態的設計模式?
- 12. 跟蹤/狀態的設計模式
- 13. 狀態設計模式 - 編譯錯誤
- 14. 狀態設計模式 - ASP .NET Webform
- 15. 使用狀態設計模式重新設計 - 疑問
- 16. 面向對象程序設計問題 - 狀態設計模式
- 17. 設計模式
- 18. 設計模式:
- 19. 設計模式
- 20. 設計模式
- 21. 設計模式
- 22. 設計模式
- 23. 設計模式
- 24. 設計模式?
- 25. 設計模式
- 26. MVC設計模式 - 設計模型
- 27. 設計模式(訪客vs命令vs策略)
- 28. 使用工廠和戰略設計模式
- 29. 如何創建在JavaScript中戰略設計模式的屬性?
- 30. 哪種設計模式可用於XNA戰略遊戲?
http://dofactory.com/Patterns/Patterns.aspx – MilkyWayJoe
[Strategy Design pattern和State Design pattern之間的區別是什麼?](http://stackoverflow.com/questions/1658192/what-是策略設計模式和狀態設計模式之間的差異) – Thor
我對這兩種模式有了一個好主意。謝謝你的回答 – Krishna