在可以忽略性能影响(最大每秒10-20个事件)的应用程序框架中,
什么是更可维护且更灵活的方法,可以用作模块之间进行通信的首选介质-事件还是期货/承诺/单子?
人们常说,事件(发布/订阅,中介)允许松散耦合,因此-应用程序更易于维护...我的经验否认这一点:一旦您拥有20多个事件,调试就会变得很困难,重构也会变得更加困难-因为很难看到:谁,何时何地使用什么。
承诺(我用Java语言编写)比事件要丑陋得多。但是:您可以清楚地看到函数调用之间的连接,因此应用程序逻辑变得更加简单明了。我怕什么 但是,Promises会带来更多的困难吗?
ps:答案不一定基于JS,非常欢迎其他功能语言的经验。
2
人们常说,事件(发布/订阅,调解员)允许松耦合,到底是谁说的?别听了!在不了解父级->紧密耦合的情况下,您无法订阅事件。调查弱事件(=调解人?)。
—
路易·科特曼
@狒狒我通常同意事件不会自动产生松散耦合,但是如果您引入事件总线,则可以在不知道“父”的情况下订阅事件。谁说的 Ray Ryan在Google IO 2009上,请访问google.com/events/io/2009/sessions/…13:50。
—
围巾岭12/09/25 '10
@scarfridge是的,如果您实现某种eventaggregator,它将失去耦合,正如我在评论中所说。
—
路易·科特曼
.net rx是事件聚合器,我在移动设备上,稍后将发布更多详细信息
—
AndreasScheinert 2012年