我有以下基本界面
public interface IHandler{
void Handle(IMessage message);
}
和继承基本接口的通用接口
public interface IHandler<TMessage> : IHandler where TMessage : IMessage{
void Handle(TMessage message);
}
我的类可以IHandler<TMessage>
多次实现接口。IMessage
是消息的基本接口,在这里不相关。目前我正在实现如下接口。
public class ExampleHandler : IHandler<ExampleMessage>, IHandler<OtherExampleMessag>{
void IHandler.Handle(IMessage message){
ExampleMessage example = message as ExampleMessage;
if (example != null) {
Handle(example);
}
else {
OtherExampleMessage otherExample = message as OtherExampleMessage;
if (otherExample != null) {
Handle(otherExample);
}
}
public void Handle(ExampleMessage) {
//handle message;
}
public void Handle(OtherExampleMessage) {
//handle message;
}
}
困扰我的是我必须实现该Handle(IMessage)
方法的方式,因为我认为它有很多冗余代码,并且每次IHandler<TMessage>
在我的类上实现新接口时我都必须扩展该方法。
我正在寻找的是一种更通用的方法来实现该Handle(IMessage)
方法(可能在处理程序的基类中),但我目前坚持如何做到这一点。