gpt4 book ai didi

c# - .Net 观察者模式改变。这些是什么时候发生的,为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:29 26 4
gpt4 key购买 nike

我只是想向一位同事解释观察者模式,以便在 C# 应用程序中使用。我说这应该很容易通过查找一些 MSDN 文档来实现。但是,我惊讶地发现 MSDN 示例偏离了我学习观察者模式的方式。请注意,我主要在 Java 中使用该模式,但给我的印象是 .Net 实现几乎相同。

我所知道的模式使用方法 Notify、Subscribe 和 Unsubscribe。 MSDN 上解释的这个新实现使用 OnNext、OnCompleted、OnError 和 Subscribe。不过,我能够找到几年前的文章,解释它的 Notify 版本。

乍一看,这个新版本似乎不必要地令人费解,让我有些困惑。这个实现是从什么时候开始的,为什么要这样实现?有什么优势?

最佳答案

请记住,.NET Observer 接口(interface)与 MS 密切相关 Reactive Extensions .如果您想了解 OnError/OnCompleted 提供的附加功能,这可能是研究的最佳场所。该模式的其余部分几乎与原样匹配:

  1. 订阅还是订阅。
  2. 取消订阅旨在通过处理订阅返回的上下文来实现。
  3. OnNext对应Notify。

所以实际上唯一的新功能是 OnError(提供并行错误报告 channel 让观察者知道可观察对象已进入错误状态)和 OnCompleted(让观察者知道可观察对象不会提供任何更多消息。)您可以通过消息中的详细信息来指示这些状态转换来完成此操作,但是如果您将可观察对象视为一种消息 channel ,它可以经历与消息本身的意图。

关于c# - .Net 观察者模式改变。这些是什么时候发生的,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27319686/

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