ニシャンタシュ:
複数の呼び出しのために変更されている1つの変数のみを持つオブジェクトを構築するための最良の方法は何ですか。
public class Brand {
final private Long id;
final private String code;
final private String version;
final private String type;
final private List<String> listThatChanges;
}
時間のほとんどは、私がlistThatChangesを変更し、別のコレクション内のオブジェクトを配置する必要があります。以下のような4つの引数のコンストラクタを持つイム思考
public Brand(id,code,version,type) {
this.id = id,
this.code = code;
this.version = version;
this.type = type;
}
私は新しいオブジェクトanyways.Isを作成するために持っているようにしてlistThatChangesのsetterが、これは任意のメモリの最適化で私を助けていませんが、そのいけないが、(一つの属性を除く)同じを再構築しているので、効率的にクラスを作成するより良い方法オブジェクト複数回
ショーン・パトリック・フロイド:
まず第一に:あなたがする必要がない限り、最適化しません。
第二:
一部のみが変更された場合、それは、実際に変更することを唯一のものであるべきであり、あなたは、組成物を採用し、ラッパーオブジェクトを導入していることを反映することができます。
class BrandAttributes{
final Brand brand; // this object always stays the same
final List<String> attributes; // this one changes
}