gpt4 book ai didi

events - 观察者模式和事件驱动方法之间的区别

转载 作者:行者123 更新时间:2023-12-03 05:40:54 27 4
gpt4 key购买 nike

我总是发现观察者模式与通常的事件驱动方法几乎相似。事实上,我几乎相信它们实际上只是指同一事物的不同名称。它们都使用类似的概念来作为监听器,甚至在实现中,它们几乎是相同的东西,那就是有一个回调方法/函数来执行操作。至少在 Java 中是这样。

在其他语言(例如 Actionscript/Flex)中,事件对用户更加友好,并且看起来它所做的不仅仅是观察者模式定义的功能。但这些概念听起来还是一样的。

但这真的是真的吗?观察者模式与通常的事件驱动编程风格是一样的吗?

最佳答案

观察者模式是一个非常特殊的实例。事件驱动可以意味着任何事情。在大多数观察者模式实现中,观察者是观察被观察者的对象。当观察者改变时,调用观察者的方法。严格来说,这不是一个“事件”。这意味着:观察者的各种不同 Action ,通常会导致观察者调用不同的方法。语义“什么”发生了变化是在方法中。在事件驱动系统中,您基本上有一个消费对象/方法,并且事件中包含更改或发生的消息。这可以是任何东西,并且不限于观察某事的想法!这意味着:在事件驱动系统中,您可以通过添加新的事件类型来获得新的语义。在观察者模式中,通常通过向观察者类添加方法来添加语义。但是:没有人会阻止您实现观察者作为 ChangeEvents 的特殊监听器。

关于events - 观察者模式和事件驱动方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439512/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com