December 10, 2008 Effective Java - item13 item 13 : Favor immutability イミュータブル(immutable, 不変の)オブジェクトとは、名前の通り生成された後に内部状態が変化しないオブジェクトのこと。イミュータブルオブジェクトはミュータブル(mutable, 可変の)オブジェクトよりはるかに使いやすいため、クラスはできるだけimmutableとするべきである。 イミュータブルオブジェクトの主な利点は次の通り。 シンプル(状態がたったひとつ!)スレッドセーフ(どのスレッドもオブジェクトの状態を変えられないので)共有可能(応用:よく使うオブジェクトのキャッシュ)他のオブジェクトの堅固な構成要素となる(e.x. MapのキーやSetの要素に最適)イミュータブルなクラスを設計するためのルールは以下。 内部状態を変化させるメソッド