我是一名高级开发人员,但我没有接受过很多正式培训,虽然我已经使用了很多设计模式并且看到它们在我作为开发人员使用的年代中使用过,但没有人真正想要说出来."哦,这是一个观察者模式,或者这是一个单身人士模式."
阅读一些设计模式,我遇到了Observer模式,它似乎与.NET框架事件的工作方式非常相似.我错过了一些基本的东西吗?
我有一个与金融市场相连的系统,它大量使用事件。
所有代码都被构造为事件级联,其间有过滤器、聚合等。
最初系统是用 C# 编写的,然后移植到 F#(回想起来这是一个伟大的举动),C# 代码中的事件被 F# 中的事件取代,没有多加考虑。
我听说过观察者模式,但我还没有真正了解这个主题。最近,我通过一些随机浏览阅读了有关 F# 的邮箱处理器的信息。
我读过这篇文章:观察者模式与事件驱动方法之间的差异,我没有明白,但显然超过 150 人投票认为答案也不太清楚:)
在这样的文章中:https://hackernoon.com/observer-vs-pub-sub-pattern-50d3b27f838c看起来观察者模式与事件完全相同......
乍一看,他们似乎在解决同一类问题,只是接口不同,但这让我思考了两个问题:
邮箱处理器真的是被使用的东西吗?它似乎主要出现在较旧的文档中,并且在我正在使用的软件包中,我还没有遇到任何使用它的情况
关于观察者模式,我们使用的大量包中只有一个包在内部使用它,但其他所有东西都只是使用基本事件。
是否有适合 Observable 模式和 MailboxProcessor 的特定用例?他们有独特的功能吗?或者它们最终只是围绕事件提供语法帮助?