I'm happy with the motivation. Not so happy with some aspects of the proposed changes.
Dependencies should always be on interfaces, not concrete classes - so I think it wrong to conflate MessageProcessor and ProtobufMessageProcessor.
We've a rule in the codebase that we don't have null dependencies (and use null objects instead). I don't think we should be making an exception here just to avoid having a trivial NullMessageProcessor class.
I'm happy with the motivation. Not so happy with some aspects of the proposed changes.
Dependencies should always be on interfaces, not concrete classes - so I think it wrong to conflate MessageProcessor and ProtobufMessage Processor.
We've a rule in the codebase that we don't have null dependencies (and use null objects instead). I don't think we should be making an exception here just to avoid having a trivial NullMessageProc essor class.