Value Object  See also: ValueObjectHypotheses,
ValueObjectsCanBeMutable, ValueObjectsShouldBeImmutable,
ValueObjectsShouldBePassedByValue, ValueObjectFramework,
JavaValue, ValueObjectLiterature, ProtoValue  Examples of value
objects are things like numbers, dates, monies and strings.
Usually, they are small objects which are used quite widely.
Their identity is based on their state rather than on their
object identity. This way, you can have multiple copies of the
same conceptual value object. Every $5 note has its own identity
(thanks to its serial number), but the cash economy relies on
every $5 note having the same value as every other $5 note.    A
value object is not a BusinessObject/ReferenceObject. A
BusinessObject/ReferenceObject is something you find in the
world, while a ValueObject is a measure or description of
something. presents an in-depth discussion of why and where you
want value objects and how to implement them efficiently in
different languages.  Chapter 9 of
FunctionalPatternSystemForObje