依赖事件处理程序顺序调用是否好



我的设计中有三个方面:

  • MSFT订单簿
  • 纳斯达克指数(当MSFT订单簿发生变化时需要重新计算)
  • MSFT
  • 策略(当MSFT订单簿或纳斯达克指数发生变化时需要重新计算)

所以我把NASDAQ indexMSFT strategy都附在这样的MSFT orderbook上:msftOrderBook.OrderbookUpdated += orderbookUpdated;

我还附加MSFT strategy以相同的方式聆听NASDAQ index变化。

我有以下问题:

  • 顺序很重要。由于我希望在重新计算策略之前重新计算NASDAQ index,因此我应该在附加strategy之前将NASDAQ index附加到orderBook。这是潜在的错误,因为我没有简单的机制来"保证"我以正确的顺序附加......
  • MSFT订单簿更新时,它会通知NASDAQ indexNASDAQ indexMSFT orderbook通知MSFT strategy有关更新的信息。所以MSFT strategy收到双重更新,但我不需要它。我只想要一次更新,因为预计当MSFT订单簿发生变化时,纳斯达克指数也会发生变化。

问题:

  • 依靠EventHandler调用的顺序好吗? 如果不好,我的问题的一般解决方案是什么?
  • 关于第二点,我只想在更新MSFT strategy MSFT orderBook忽略,因为策略知道每次订单簿更新时,纳斯达克指数也会更新,因此仅在纳斯达克指数更新时做出反应就足够了。但也许你可以提出一些完全不同的和更好的建议。

似乎很清楚:

  • MSFT订单簿
  • 纳斯达克指数(当MSFT订单簿发生变化时需要重新计算)
  • MSFT
  • 策略(当MSFT订单簿或纳斯达克指数发生变化时需要重新计算)

    因为我希望在重新计算
  • 策略之前重新计算纳斯达克指数

意味着MSFT策略依赖于纳斯达克指数,并且仅间接依赖于MSFT订单簿。
因此,这要求策略可以订阅的纳斯达克指数上的更改事件。

不过,我赞成一种没有事件的方法,但目前尚不清楚这是否可行。


对评论的回应:

class BusinessLayer
{
    public void Update(Type data)
    {
        OrderBook.Update(data);
        NasdaqIndex.Update(OrderBook);
        NasdaqStrategy.Update(NasdaqIndex);
    }
}

相关内容

  • 没有找到相关文章

最新更新