A ValueObject is a lightweight domain abstraction that has value semantics. It is typically (but not always) implemented as an immutable class. Examples are Money, Currency, Point and Rectangle objects. This page lists known descriptions and documentation of ValueObject as a pattern. This literature either directly talks about value objects or uses terms that directly led to its current definition as given above. Wiki * ValueObject * Uses of ValueObject (http://c2.com/cgi/wiki?search=valueobject) WardCunningham * Whole Value, PLoP 1994, in PatternLanguagesOfProgramDesign (see WholeValuePattern). KevlinHenney * ImmutableValue, 1997 (http://www.two-sdg.demon.co.uk/curbralan/papers/JavaPatternsAndImplementations.html) * At PLoP 1998 (http://c2.com/cgi/wiki?ImmutableValue) * Pattern language, 2000, part 1 (http://www.two-sdg.demon.co.uk/curbralan/papers/PatternsOfValue.pdf) * Pattern language, 2000, part 2 (http://www.two-sdg.demon.co.uk/curbralan/papers/ValueAdded.pdf) MartinFowler * UmlDistilled, 1997, has a small section on reference and value objects. * RefactoringBook, 1997, has a couple of refactorings that involve value objects. * A response to SunMicrosystems' ValueObject (http://martinfowler.com/isa/valueObject.html) DirkRiehle * Technical Report "Values in Object Systems" (http://www.riehle.org/computer-science/research/1998/ubilab-tr-1998-10-1.html) (See also ObjectSystemPatterns.) * OpenSource framework JValue (http://www.jvalue.org/) ThomasKuehne * A FunctionalPatternSystemForObjectOrientedDesign, Verlag Dr. Kovac, Hamburg, Germany, 1999. PaulMorrison * Discussion of something tentatively called SmartData (is this an aspect of ValueObject?) MicrosoftCorporation * Used in DotNet EricEvans * http://patternshare.org/default.aspx/Home.DDD.ValueObjects ---- CategoryObjectFunctionalPatterns