我看到一個教程視頻解釋責任鏈設計模式,我想我明白它是如何工作的,但我不確定何時會真正使用它。責任鏈的一些常見用法是什麼?責任鏈的常見用法?
1
A
回答
2
從GoF:
已知應用
幾個類庫使用責任 鏈模式處理用戶事件。它們使用不同的名稱作爲處理程序類,但是想法相同:當用戶單擊 鼠標或按下某個鍵時,將生成一個事件並沿 鏈傳遞。 Symantec的TCL庫[Sym93b]將其稱爲「Bureaucrat」,NeXT的 AppKit [Add94]使用名稱「Responder」。
圖形編輯器的Unidraw框架定義命令對象 ,它將請求封裝到組件和組件視圖對象 [VL90]。命令是請求,意思是組件視圖或組件視圖可以解釋命令以執行操作。這個 對應於 實現中描述的「作爲對象的請求」方法。組件和組件視圖可以分層構造 。組件或組件視圖可以將命令解釋轉發給其父母,其可以繼而將其轉發給其父母,等等,由此形成責任鏈。
ET ++使用責任鏈來處理圖形更新。一個 圖形對象調用InvalidateRect操作,只要它必須更新其外觀的一部分 。圖形對象本身無法處理 InvalidateRect,因爲它對上下文沒有足夠的瞭解。例如,一個圖形對象可以包含在像滾動器或變換器的變換其座標系統的對象 中。 表示該對象可能會滾動或縮放,以至於部分 不在視圖中。因此,InvalidateRect的默認實現 將請求轉發給封閉的容器對象。轉發鏈中的最後一個 對象是一個Window實例。到 窗口收到請求時,無效矩形保證 被正確轉換。該窗口處理InvalidateRect by 通知窗口系統界面並請求更新。
相關問題
- 1. 責任鏈模式
- 2. 鏈責任範圍
- 3. 責任鏈動態鏈
- 4. 大型配置責任鏈
- 5. 責任鏈[GoF]缺點
- 6. 責任鏈模式C++
- 7. 執行責任鏈變化
- 8. 與線程池鏈責任
- 9. 責任鏈vs攔截器
- 10. 責任鏈日誌記錄
- 11. C#與代表責任鏈
- 12. 用服務實現責任鏈
- 13. 方法的重點責任
- 14. Ruby中的責任鏈和alias_method問題
- 15. ViewModel的責任
- 16. java.util.logging.Logger.log()是責任模式鏈嗎?
- 17. wpf事件和責任鏈模式
- 18. 責任鏈VS案例陳述
- 19. 命令模式以及責任鏈
- 20. 模式聯盟責任鏈,工廠方法,戰略
- 21. 帶任務委託的責任鏈設計模式推薦
- 22. 責任模式的鏈接採用不同的參數類型?
- 23. 責任店
- 24. UML的常見用法
- 25. 使用常見的方法
- 26. 爲什麼我會用裝飾者的責任鏈?
- 27. Java 8流和責任鏈中的通用接口
- 28. 模式中請求的可變性責任責任
- 29. 常見做法?
- 30. 數據庫責任