У меня есть "конвейерная" система. Существует тип: Pipeline
, который можно создать, а затем выполнить для различных данных.
var myPipeline = new Pipeline();
myPipeline.Execute("something");
var myOtherPipeline = new Pipeline();
myOtherPipeline.Execute("something else");
Я хочу добавить OnExecuted
событие, которое будет вызываться при выполнении конвейера. Но я хочу добавить его как к типу Pipeline, , так и , чтобы отделить экземпляры конвейера. Итак, как статическое, так и экземплярное событие.
- Статическое событие: выполняется всякий раз, когда любой конвейер выполняется в любом экземпляре конвейера
- Событие экземпляра: выполняется всякий раз, когда выполняется конкретная реализация конвейера
Есть ли здесь лучшая практика? Мне просто нужно добавить два события?
myPipeline.OnPipelineExecuted
и myOtherPipeline.OnPipelineExecuted
Pipeline.OnAnyPipelineExecuted
(это название звучит ужасно)
Или я мог бы как-то повторно использовать то же событие? Если это так, должен сделать это?
Обновление:
Смотрите первый и второй комментарии. Это было просто не очень хорошая идея для начала. Было бы немного архитектурной акробатики, чтобы избежать нескольких дополнительных строк кода реализации.