Value objects like a pro
On the Hackernoon site Nicolò Pignatelli wrote a good guide on how to write Value objects in a good way.
This is the list you must always check it against:
- it is immutable and no setters defined;
 - it reflects the semantics of the domain;
 - it shows how information flows and is transformed during runtime;
 - it hasn’t default or useless getter methods;
 - it can be compared to other Value Objects of the - - same class by reading private properties directly
 
https://hackernoon.com/value-objects-like-a-pro-f1bfc1548c72