WEB开发网
开发学院软件开发C语言 换一个角度理解委托和事件 阅读

换一个角度理解委托和事件

 2010-10-01 08:20:13 来源:WEB开发网   
核心提示:如果你还为委托和事件犯迷糊,你可以试着回答下面这些问题:让你来设计一个框架(或者程序)实现效果:点击button时实现label1.text=“呵呵,换一个角度理解委托和事件,第一次点击!”,你会怎么处理?注意,其他人在其他地方写实现的代码,如:ListenerMethod(){if(butto

如果你还为委托和事件犯迷糊,你可以试着回答下面这些问题:

让你来设计一个框架(或者程序)实现效果:点击button时实现label1.text=“呵呵,第一次点击!”,你会怎么处理?注意,不要用.net已经实现的框架。

我们会想,在windows系统里应该有一个监听程序,专门处理鼠标点击事件,一旦button被点击,他就会执行一定的程序。大概应该像下面的伪代码一样:

ListenerMethod(){
if(button.clicked)
{……}
}

我就可以在{}里写上label1.text=“呵呵,第一次点击”,搞定!

如果要实现其他内容,比如再一次点击,就label.text=“没问题,第二次点击”。

到此为止,你发现问题么?

如果还没有发现,呵呵,你就有问题了。

我也是在学习了“设计模式”之后才想到的,如果按上面的方法实现,就:

1、你必须把ListenerMethod()方法的具体内容公布出来,不然人家怎么用呢,这些执行的代码写在哪里呢?

2、把方法公开是不好的,为什么?最简单的,怕人家看了干坏事呀,黑客是怎么出来的?呵呵,这其实只是一方面,更实际的原因甚至是防止自己误操作……不多说了,理解关键字“封装”!

接着想,我要不把ListenerMethod()方法暴露出来要怎么办。

可不可以事先写好一个方法,放在{}里,其他人在其他地方写实现的代码,如:

ListenerMethod(){
if(button.clicked){
TheMethod();  //只要按钮被点击就执行这个方法;
}
}

而在另外的地方设好方法名和参数,让其他人填空,如下

1 2 3 4  下一页

Tags:一个 角度 理解

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接