Skip to content

Instantly share code, notes, and snippets.

@yemrekeskin
Created May 5, 2013 21:34
Show Gist options
  • Save yemrekeskin/5522267 to your computer and use it in GitHub Desktop.
Save yemrekeskin/5522267 to your computer and use it in GitHub Desktop.
Message Dispatcher
public abstract class Message { }
public class BaseReponseMessage
:Message
{
}
public class BaseRequestMessage
:Message
{
}
public class RequestMessage
:BaseRequestMessage
{
}
public class ResponseMessage
:BaseReponseMessage
{
}
public class AccountingMessage
:RequestMessage
{
}
public class CreditMessage
:RequestMessage
{
}
public class PaymentMessage
:RequestMessage
{
}
public interface IMessageProcessor
{
ResponseMessage Execute(RequestMessage message);
}
public interface IMessageHandler
{
void HandleMessage(RequestMessage message);
}
public class MessageProcessor
:IMessageProcessor
{
public ResponseMessage Execute(RequestMessage message)
{
ResponseMessage responsemsg = new ResponseMessage();
// do transactions related with request message
return responsemsg;
}
}
public class MessageHandler
:IMessageHandler,IMessageProcessor
{
IMessageProcessor processor;
public MessageHandler()
{
this.processor = new MessageProcessor();
}
public void HandleMessage(RequestMessage message)
{
this.Execute(message);
}
private ResponseMessage Execute(RequestMessage message)
{
return processor.Execute(message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment