Immutable Objects

Creating an immutable version of a type using defensive copying.

The recipe for an immutable class

Typical design flaws which prevent a class from being immutable