回答

3

我的一般方法是在单个应用程序中使用Events/Listeners,它们非常高效且快速,IDE有很多工具可以使它们相对容易实现。我的经验法则是使用这种模式,如果你真的需要确保听众每次都得到事件的通知。

我在SOA应用程序或系统集成中使用信号/插槽模式,因为它更具有延迟友好和无状态的方法。

+0

然后你是否暗示事件/听众比信号/插槽表现更好,还可以告诉我哪些IDE支持事件/听众?感谢您的快速响应。 – meteorfox 2010-09-02 21:02:01

+0

我想这取决于实现,但.NET或Java中的事件模型适用于进程内操作,这将使它们尽可能快(取决于库)。即使COM事件很快,如果不是可靠的。信号/插槽作为一种模式不会假定何时/如果任何听众会获得信号,所以性能不是一个大问题。显然一切都取决于实现,我相信你可以创建一个比.NET事件更快的信号/插槽实现。 – 2010-09-02 21:28:30

+0

对于有支持的IDE,我指的是Visual Studio,它自动连接来自UI设计器的事件,以及在代码视图中自动生成处理程序和委托。我相信Eclipse有类似的帮手。 – 2010-09-02 21:28:59