2012-02-08 4 views
3

不変性は、各状態変更で新しいオブジェクトを作成するので、再利用性が向上することは明らかです。不変のクラスが必要な実用的なシナリオを誰かに教えてもらえますか?実用的な不変クラスの例

答えて

5

java.lang.Stringを考えてください。それが不変でない場合は、あなたが確信したがっている文字列があなたの下で変わることがないたびに、コピーを作成する必要があります。

もう1つのコレクションはコレクションです。本当に不変なコレクション(たとえば、変更可能なコレクションの不変なビューではなく、Guavaから)を受け入れるか返すことができて、変更されないという確信を持っていることがうれしいです。

「必要な」ものかどうかはわかりませんが、私はそれがなければ開発したくありません。

+0

よろしくお願いいたします。ジョーンズおめでとう! –

+0

今日は400kをヒットしたようですね、おめでとう! –

+1

ありがとう:)年末までに500k? –

2

Javaは良い例を提供します:String

3

良い例はハッシュに関連しています。クラスは、HashSetのようなデータ構造や(HashMapのキーとして)使用できるように、equals()hashCode()のメソッドをオーバーライドし、ハッシュコードは通常、特定のメンバー属性によって導出されます。しかし、これらの属性が変更されると、オブジェクトのハッシュコードも変更されるため、オブジェクトはハッシュデータ構造で使用できなくなります。