知识若不分享 实在没有意义 http://www.d-programming-language-china.org 20070427
点击下面网址查看原文:
http://www.d-programming-language-china.org
by: ideage
from: http://ideage.javaeye.com/?page=1
关键字: DFL 事件 订阅 设计模式 观察者
DFL中的事件订阅(module dfl.event,dfl.control)
一.EventArgs类: 事件参数祖先,传递事件的参数组合,可以进行继承实现更多的参数.
二.Event 模版
1.接受两个模版参数,
2.重载了操作符:
opCatAssign ~ 增加.
opCall 调用
opApply foreach调用
三.例子
控件本身:
1.声明可以订阅事件
Event!(Control, EventArgs) click;
2.事件处理函数( 本文出处: http://www.d-programming-language-china.org )
protected void onClick(EventArgs ea)
{
click(this, ea);
}
3.处理Window的事件消息,触发事件.
protected void wndProc(inout Message msg)
{
switch(msg.msg)
{
case WM_LBUTTONUP:
onClick(EventArgs.empty);
}
}
使用控件过程:
4.发生事件要执行的函数.
private void bt_click(Object sender, EventArgs ea)
{}
5.订阅事件.
四.启示 observer模式的一个好例子.
在D的运行库Phobos中,std.signals 也实现了observer模式.
( lastupdate:20070427 最新文章请访问http://www.d-programming-language-china.org )关于一大步成功社区:
yidabu提倡在交流中学习,在分享中提高
收集感兴趣的知识,写下心得,通过网络与别人一起分享
理解一点就实践一步,收获什么就分享什么,成功就是这样一点点一步步累积起来的
网络只是一个工具,只有自己身心提高才是实实在在的。d-programming-language-china.org为大家提供一个学习交流各种知识的平台