Sorry, I expressed myself wrongly when I said factory methods; To be more specific I meant static factory methods. They are not only meant to tackle the complexity of the creation of an object, they’re also very handy when it comes to readability of the code (think of how TimeSpan is designed).

IMO giving this action a meaning like:

PlaceOrderCommand.Envelop(…)

Expresses much more its purpose than

new PlaceOrderCommand(…)

But one thing I agree, commands are just simple DTOs and whatever is used will work for the simple purpose of sending it.

Software Engineer and passionate about distributed systems

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store