Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 如何使用责任链设计模式来处理Windows中的鼠标单击和键盘事件?_Design Patterns_Chain Of Responsibility - Fatal编程技术网

Design patterns 如何使用责任链设计模式来处理Windows中的鼠标单击和键盘事件?

Design patterns 如何使用责任链设计模式来处理Windows中的鼠标单击和键盘事件?,design-patterns,chain-of-responsibility,Design Patterns,Chain Of Responsibility,我刚刚读完Head First Design Patterns一书,我注意到责任链模式“在windows系统中常用于处理鼠标单击和键盘事件等事件。” 这种模式在多大程度上用于这些事件?以何种方式 我知道责任链模式可以像一种过滤器一样工作,但究竟过滤什么呢?或者换句话说,链接对象处理这些事件的方式有哪些不同 首先想到的是某种映射系统,但这似乎不太可能,而且肯定会非常低效 可能与组合键(Ctrl+Alt+Del等)有关 也许我遗漏了一些明显的东西或误解了一些东西,但我并不清楚为什么这种模式在这种情况

我刚刚读完Head First Design Patterns一书,我注意到责任链模式“在windows系统中常用于处理鼠标单击和键盘事件等事件。”

这种模式在多大程度上用于这些事件?以何种方式

我知道责任链模式可以像一种过滤器一样工作,但究竟过滤什么呢?或者换句话说,链接对象处理这些事件的方式有哪些不同

首先想到的是某种映射系统,但这似乎不太可能,而且肯定会非常低效

可能与组合键(Ctrl+Alt+Del等)有关


也许我遗漏了一些明显的东西或误解了一些东西,但我并不清楚为什么这种模式在这种情况下会有用。

您是否编写过web应用程序?想想DOM中的事件是如何冒泡的,以及在某些场景中它是如何有用的。例如,单击表格单元格可能最终会在行级别进行处理,以更新行选择模型。我没有,但可能您正在描述类似于中演示的内容?嗯,如果您想象一个由分层组件构成的UI。您可能有一个由许多
TableCell
组成的
TableRow
。然后,您可能希望在层次结构的各个级别处理源于单击
表格单元格的
单击
事件。让组件事件(如
单击
在层次结构中冒泡)形成一种责任链,每个事件处理程序都可以控制事件进一步传播的方式并执行特定逻辑。在上面的注释中,逻辑可能是在行级别处理事件,并从逻辑上选择整行。