3

我正在尝试在 F# 中开发多代理应用程序。这是我正在尝试做的事情:

  • 创建几个代理(比如 100 个)。

  • 让这些代理使用事件异步地相互通信。

  • 但是,要求是这些代理中的每一个都不应相互了解。

  • 上述要点的本质是,对于一个代理(比如 A1,在这种情况下是发布者)发送事件给另一个代理(比如 A2,他是订阅者),代理 A2 需要实例化A1 以接收来自的通知它。F# 中的事件框架响应式扩展 (Rx)都遵循这种实例化方法。

  • 我正在寻找的是基于 F# 的事件代理框架/中间件,它允许代理订阅事件而无需实例化发布该事件的代理。即代理不了解系统中的其他代理。他们只知道存在的事件列表,并从该列表订阅(一个或多个)事件。在接收到订阅的事件时,代理调用其方法之一。

  • 我能想到的一种解决方案是事件聚合器模式(例如在 Prism 中)。但是还没有看到这种模式的任何 F# 实现。

任何参考/指针将不胜感激。提前致谢。

4

1 回答 1

0

您可能对使用Reactive Extensions框架进行响应式编程感兴趣。它允许您创建和操作事件流。

一个基本的介绍性场景是创建一个Subject您的代理可以订阅或发送事件的,从而充当生产者或消费者。

我不确定是否有不同事件模式的具体 F# 实现,但框架本身非常强大,在我看来绝对值得研究。

于 2013-11-28T23:52:07.687 回答