Value Objects (<<value-object>>) are meant for passing data between application tiers. They build on the POJO functionality but add the follow features:
java.io.Serializable interface.Value Objects are often what the client receives back in response to a server query. They
are often clustered in arbitrary lists or trees as needed by the client. Both the generated
equals and hashCode methods are deep implementations to accommodate this
usage pattern.