繁体   English   中英

您多久使用一次自定义事件?

[英]How often do you use custom events?

我一直在学习ASP.NET的一些新功能,这些功能超出了我目前的舒适程度,并且我正试图从设计的角度确切地了解自定义事件的适用范围。 我知道它们的工作方式以及观察者/订阅者模式,但是似乎自定义事件讨论得很少。 似乎可以通过在整个地方注册事件和响应来构建整个应用程序,但是,我们看到了更多的控制器类型的类,它们以预定的模式触发了一些代码……这是面向对象的,但仍然程序。

因此,从设计角度来讲,什么时候最好使用事件? 是否有某些非常有用的方案,但没有太多其他方案? 还是有可能创建一个高度依赖它们的应用程序,而程序员可以根据需要使用它们的多少?

通常,我只是对它们属于“适当”设计的地方感到好奇,因为我可以轻松地重新构想一个或两个依赖它们的应用程序,而不是单击按钮时触发控制器类逻辑。

您在asp.net代码中看不到太多自定义事件,主要是因为可以触发“事件”的事情往往是用户通过按钮或what-not等内置控件在客户端上执行的操作。 服务器本身并没有真正与代码“交互”,因为它以事件驱动的方式执行。

您可以通过其中一个常规控件获得回发goind。 实际上,服务器上的执行通常是过程性的……这只是在无状态请求/响应环境(如Web)中最有意义的模式。

asp.net页面的生命周期和服务器控件都暴露了很多事件,并且可能触发那些面向对象(OO)之类的方面,实际上只是在支持本质上是高度过程化和线性执行的路径。

与内置控件一样,Custom Server控件也公开自定义事件,因此页面开发人员具有一种机制,通过它们可以与控件进行交互而无需紧密耦合...因此您可以在其中找到大多数自定义事件。 但是,仅当您确实确实有很多可以使用该控件的页面时,才真正值得制作自定义服务器控件的成本。

我也经常在用户控件中使用事件。 尽管您可以将用户控件与服务器控件非常相似地对待,但是通常,就OO设计原则而言,用户控件往往较弱。 使用用户控件时,您通常通常只是试图将关注点和某些封装分离开来,但是在托管页面和用户控件之间仍然会保持相当紧密的联系。 但仍然,有时用户控件可能需要向托管页面发信号通知已满足某些条件,并且在那些情况下,自定义事件是一种处理该信令的好方法,与直接在托管页面上调用方法相比,耦合性较小。

在构建自定义控件时,通常会使用自定义事件。

在ASP.Net中,我根本不使用自定义事件,因为即使使用自定义控件,我也尝试更多地依赖现有页面生命周期。

在Windows窗体中,我所做的几乎所有事情都抽象到某个位置的控件中,因此我经常使用它们。

我在ActionScript 3.0中做了很多自定义事件。 我之所以这样说是因为它的委托系统与.NET非常相似。

我正在创建一个SWF播放器,可以一次将多个剪辑排队。 我的自定义时间轴控件将触发ClipEnd事件,我的主应用程序将监听该事件并推进播放列表。 如果用户前进到新剪辑,或者应用程序自动执行,则我的播放列表将触发NewClip事件。 我的应用程序会监听这些内容,并告诉时间轴开始播放下一个剪辑。 因此,我的时间轴和播放列表通过自定义事件共生关联。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM