0
A
回答
1
State Pattern的基本思想是在某些Context類中某些行爲是在另一個對象中定義的。
public class Context
{
....
public void Request()
{
_state.Handle(this);
}
}
的Request
行爲取決於_state
當前值。 State
是可以在運行時更改的東西,對於Context
的用戶,Context
的行爲將會改變。
在以下代碼中,當前Context
傳遞給State
,而State
可以更改Context
。
/// <summary>
/// The 'State' abstract class
/// </summary>
abstract class State
{
public abstract void Handle(Context context);
}
/// <summary>
/// A 'ConcreteState' class
/// </summary>
class ConcreteStateA : State
{
public override void Handle(Context context)
{
context.State = new ConcreteStateB();
}
}
/// <summary>
/// A 'ConcreteState' class
/// </summary>
class ConcreteStateB : State
{
public override void Handle(Context context)
{
context.State = new ConcreteStateA();
}
}
本示例摘自dofactory,其中包含對最流行設計模式的描述。
0
我認爲這句話的意思是你可以有一個類Cursor對象(借用維基百科的例子),並將其用作工具。
但是,Cursor對象的內部狀態可以是PenTool或SelectionTool,它可以來回切換而不影響Cursor對象。因此,本質上,Cursor對象在用作工具時,將其類型從「PenTool」更改爲「SelectionTool」並返回,而不影響使用Cursor對象的代碼。
相關問題
- 1. 介紹了Memcached
- 2. 簡要介紹Qt?
- 3. VB.NET - 介紹了IEnumerator
- 4. 簡單介紹java遊戲編程
- 5. UI設計 - 城市/國家的設計模式下降? (ASP.NET MVC)
- 6. swt與拖放設計器的介紹?
- 7. XDocument.Load()介紹了DTD頭
- 8. Postgrest介紹除了文檔
- 9. API設計:國家
- 10. 「國家設計模式」可以被認爲是「建築模式」?
- 11. 簡單介紹R中的線性模型 -
- 12. 計劃任務介紹CakePHP
- 13. 計算列 - 需要介紹
- 14. 應用介紹在清單
- 15. 玩家設計模式
- 16. IOS介紹PageViewController
- 17. 介紹CakePHP
- 18. 乳膠介紹
- 19. Keras Seq2Seq介紹
- 20. 介紹動畫
- 21. 介紹COM DLL
- 22. Ocaml介紹
- 23. SVN介紹
- 24. codeigniter wkhtmltopdf介紹
- 25. 介紹UINavigationController Swift
- 26. Cognos 8介紹
- 27. Node.js介紹
- 28. 介紹CakePHP 3
- 29. 寶介紹
- 30. php介紹
我建議跳過維基百科,直接找到「設計模式」的副本。如果你不擁有它,那麼儘快糾正 – tcarvin 2012-02-08 17:08:54