重複の可能性:
可変オブジェクトと不変オブジェクト
不変オブジェクトと可変オブジェクトの長所と短所は理解していますが、設計する際にどちらを選択するかをどのように決定しますか。
私がそれについて尋ねる理由は、それが可変である場合、効率的かつ経済的な方法でオブジェクトを初期状態に戻すだけでオブジェクトを再利用できるためです。したがって、マルチステップ操作を処理するときは、オブジェクトを再利用するだけで済みます。もう一度。一方、マルチステップ操作を実行すると、すべてのステップで新しいオブジェクトが生成されるため、不変オブジェクトのパフォーマンスが向上します。<-メモリに関する限り
次に例を示します。
//Mutable
A a = new A();
for(int j = 0 ; j < 1000 ; j++){
a.setP1(j);
//do something
}
//Immutable
for(int j = 0 ; j < 1000 ; j++){
A a = new A(j);
//do something
}
不変オブジェクトは、広告に対して安全で、同期は不要で、シンプルで、内部を共有していることを知っていますが、これら以外に特別な理由はありますか?そして、いつクラスを最終(不変)にする必要がありますか?