DX们好,
比如给一个Button 添加一个Listener 到事件触发 执行方法 , 用的是哪种设计模式
[b]问题补充:[/b]
那么再请问 假如我Click了一个Button,onClick()这个方法是怎么被调用到的呢?
是什么流程? 还是搞不明白啊。 是不是设计到与操作系统的交互了呀? 通过底层的其他语言之类的?
DX们好,
比如给一个Button 添加一个Listener 到事件触发 执行方法 , 用的是哪种设计模式
[b]问题补充:[/b]
那么再请问 假如我Click了一个Button,onClick()这个方法是怎么被调用到的呢?
是什么流程? 还是搞不明白啊。 是不是设计到与操作系统的交互了呀? 通过底层的其他语言之类的?
呵呵,原来是对发出事件的疑惑。每个平台的具体实现方法不同,不过你可以假象这样的状况:
在程序的底层有一个消息循环,专门检测各种状态,当一些状态改变时就“发出事件”。例如键盘输入会设置一个状态,程序在消息循环里看到了状态的改变,于是调用onKeyDown、onKeyUp等方法。这种与I/O相关的事件涉及到操作系统也不奇怪。
就是说在实现图形界面的库的底层会有类似这样的循环:
[code="c"]while (TRUE) {
switch (message) {
// ...
case WM_KEYDOWN:
onKeyDown(param);
break;
// ...
}
}[/code]