0

在 C# 中,我有一个场景,其中至少在 2 个地方引发了不同的域事件,我希望一个处理程序使用相同的代码来处理它们(其他侦听器可能执行特定于事件的代码)。使用以下模式的处理程序;

public class SomeHandler : IHandler<SomeEvent>
{
   public SomeHandler()
   {
      //whatever init code
   }

   public void Handle(SomeArgs args)
   {
       //Common code
   }
}

那么用同一个 Handler 处理多个 Event 的最佳方式是什么?谢谢

4

1 回答 1

3

IHandler<SomeEvent>是一个接口,所以也许你可以实现多个:

public class SomeHandler : IHandler<SomeEvent>, IHandler<SomeOtherEvent>
{
   public SomeHandler()
   {
      //whatever init code
   }

   public void Handle(SomeArgs args)
   {
       //Common code
   }

   public void Handle(SomeOtherArgs args)
   {
       //Common code
   }
}
于 2014-04-11T00:08:35.777 回答