mode
Mutable
Immutable
Mutable:
setters edit the shared box in place.
aliasA
→ #1
aliasB
→ #1
aliasA
.setAmount(
0
)
Mutate the shared box in place. Both references point at it, so aliasB changes too.
aliasA.setAmount(…)
aliasA
.equals(
aliasB
)
Value objects compare by value. Two separate
Money(100,"USD")
are equal.
aliasA.equals(aliasB)
Reset
aliasA.equals(aliasB)
→
press equals()
console
▸
Same action, two outcomes. In
Mutable
mode one setter corrupts both references; in
Immutable
mode
plus()
builds a new box and only aliasA moves.