私はEffectiveJavaを読み、そこに
クラスを不変にすることができない場合は、その可変性を可能な限り制限してください...
と
...非ファイナルにするやむを得ない理由がない限り、すべてのフィールドをファイナルにします。
したがって、すべてのPOJO(たとえば、、およびフィールドを含む単純なクラス)クラスを常に不変にする必要がありますかBook
?また、オブジェクトの状態を変更したい場合(たとえば、ユーザーが多くの本を表すテーブルでオブジェクトを変更した場合)、セッターの代わりに次のようなメソッドを使用します。ID
Title
Author
public Book changeAuthor(String author) {
return new Book(this.id, this.title, author); //Book constructor is private
}
しかし、私は本当に良い考えではありません。
クラスを不変にするタイミングを教えてください。