In fact, it is easy but developer does not really understand the difference between an enum, a entity or a value object. As discussed in earlier sections about entities and aggregates, identity is fundamental for entities.
Implement value objects.
“Value object is an object whose equality is based on the value rather than identity.“ There is only one exception, as far as i know, and that is the String -class. Implementing value objects in your project is something that every software has to do. A value object can reference other entities. However, there are many objects and data items in a system that do not require an identity and identity tracking, such as value objects. 01/30/2020; 11 minutes to read +2; In this article . It is immutable, and behaves completly as a value-Object, but actually it is a class-type.
It may sounds like a simple task but from my experience I can tell you that it is less easier than it looks like.