不変クラス

immutable-class.png

不変クラスとは?

インスタンス作成時点で中のデータが決まり、
そのあとは絶対変更されないようなクラスのことです。

Javaから最初からある不変クラスの例

  • String
  • Integer,Double,Longなどのボクシングされた基本データクラス
  • BigInteger,BigDecimal

不変クラスの良いところ

  • 謝りにくく安全

不変クラスの作り方

  1. オブジェクトの状態を変更するためのいかなるメソッドも提供しない
  2. クラスが拡張出来ないようにクラスにfinalをつける
  3. すべてのメンバ変数をprivate finalにする…私はpublicでもいいと思うけどね
Bibliography

minimize-mutability

サポートサイト Wikidot.com minimize-mutability