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