Immutableパターン

Java言語で学ぶ デザインパターン入門[マルチスレッド編]」より
マルチスレッドプログラミングで考慮しなければいけないスレッドの排他制御をしなくていい方法。
Immutable(不変)なオブジェクトを作る。
フィールドの値を変更するメソッドがなくて、すべてのフィールドの値はコンストラクタで指定するならば後は値を取得するだけなのでスレッドの排他制御をする必要がないとのこと。
ただ、落とし穴に注意。
Immutableなクラスは意外と難しくて、コンストラクタのみで値を指定するにしてもクラスを参照渡ししていたら内容を変更することができるのでImmutableではない。
その場合、C++だったらメンバ変数はポインタになっているので分かりやすいんだけどC#とかは分かりにくいから注意しないと。