4 ms·
'Value Object' and 'Immutable Object' are a contradiction in terms. Immutability refers to values, not 'objects'.
by ExpiredLink 12y ago
'Value Object' and 'Immutable Object' are a contradiction in terms. Immutability refers to values, not 'objects'.
- benjiweber 12y agoNot sure what you are getting at. I assume you are using a specific definition of these terms from a particular domain? Immutable is just a word that means unchanging, as in "immutable laws of nature". . Consequently Objects can be immutable if they cannot change after creation. This seems a pretty commonly held view http://en.wikipedia.org/wiki/Immutable_object http://en.wikipedia.org/wiki/Immutable_object How would you define Objects and Values?
- noblethrasher 12y agoAn object has state by definition. More to the point, an object has agency: It gets to decide how to interpret messages sent to it (this is why we say that putting setters on classes turns objects back into mere data structures [1]). http://www.devx.com/enterprise/the-vision-of-kay-and-fielding-growable-systems-that-last-for-decades.html http://www.devx.com/enterprise/the-vision-of-kay-and-fieldin... (right after the seventh paragraph)
- ExpiredLink 12y agoThe classic paper is "Values and objects in programming languages" by B. J. MacLennan. https://www.google.com/search?as_q=MacLennan+Values+and+Objects+in+Programming+Languages&as_filetype=pdf https://www.google.com/search?as_q=MacLennan+Values+and+Obje...
- rianjs 12y agoAn object can be a value object, and it can be immutable. Or not. (Though I can't think of a reason a value object should ever be mutable once it's created; it would be a very pungent code smell.) These are orthogonal ideas; not contradictory ones.