Immutable Value


Objects are often characterised by identity, behaviour and state. However, the relative importance between these can vary from problem to problem. Value patterns focus on those object patterns for which behaviour and state are more important than reference based identity, i.e. the ability to distinguish one object from another by its identity is not as significant as the role played by its content, leading to a distinction between a ValueObject and a ReferenceObject.

The ImmutableValue pattern resolves a number of implementation and optimisation issues found in concurrent systems and in languages whose object models rely exclusively on reference semantics. ImmutableValue can be considered one of the common JavaIdioms.





Resulting Context

Examples and Related Concepts


This pattern was first documented and presented in something like this form at the BCS OOPS Pattern Day, It was then presented informally at PLoP 98, where it was workshopped and the form on this page is pretty much the result. -- KevlinHenney

View edit of October 30, 2004 or FindPage with title or text search