我可以/应该通过将事件设为静态绑定和实例绑定来“共享”事件吗?

时间:2018-07-03 18:30:16

标签: c# events event-handling

我有一个“管道”系统。有一种类型:Pipeline,可以实例化然后在各种数据上执行。

var myPipeline = new Pipeline();
myPipeline.Execute("something");

var myOtherPipeline = new Pipeline();
myOtherPipeline.Execute("something else");

我想添加一个OnExecuted事件,该事件将在执行管道时引发。但是我想将其都添加到管道的类型中,以分隔管道的实例。因此,既作为静态事件又作为实例事件。

  • 静态事件:只要在管道的任何实例中执行了 any 管道,就会运行
  • 实例事件:在管道的特定实例执行时运行

这里有最佳实践吗?我是否只需要添加两个事件?

  • myPipeline.OnPipelineExecutedmyOtherPipeline.OnPipelineExecuted
  • Pipeline.OnAnyPipelineExecuted(这个名字听起来很可怕)

还是可以以某种方式重用同一事件?如果是这样,应该我这样做吗?

更新

请参阅第一和第二条评论。首先这不是一个好主意。避免一些额外的实施代码本来是一些体系结构的杂技。

0 个答案:

没有答案