0..n 個のオブジェクトがあり、それぞれが一意の識別子を必要とし、次のように作成されます。
public class Squirrel {
private static numSquirrels = 0;
private String id = null;
public Squirrel() {
this(String.valueOf(numSquirrels++);
}
public Squirrel(String id) {
this.id = id;
}
}
これはいくつかの点で問題ですが、1 つ挙げておきます。
単体テストの場合、numSquirrels 変数はテスト間で引き継がれます。これは、異なる集団のリスを扱っている場合でも同じです。これは、最初からやり直したいときに ID が増え続けることを意味します。
- これは、SquirrelFactory (子供たちが絶賛しているもの) を使用する適切な時期ですか?
- 依存性注入を使用して Factory を Squirrel オブジェクトに渡す必要がありますか、それとも Squirrel クラスを、外部とのインターフェースを持つ Squirrel Factory 内に含める必要がありますか?
- ユーザーが ID を設定できるようにする (または少なくとも ID を提案する) ことができるようにする場合、一意性を確保するにはどうすればよいですか?