// Main handler method public void HandleSomeMessage(MyClass message) // Or it could be IMessage { // Pass this handler to message. Since message implements AcceptHandler // as just passing itself to handler, correct method of handler for MyClass // or MyClass2 will be called at runtime. message.AcceptHandler(this); }