我已經0..N對象,每個對象都需要一個唯一的標識符,即以這種方式創建:如何用Java中的工廠替換靜態計數變量?
public class Squirrel {
private static numSquirrels = 0;
private String id = null;
public Squirrel() {
this(String.valueOf(numSquirrels++);
}
public Squirrel(String id) {
this.id = id;
}
}
這是一個問題在幾個方面,但我會給一個:
當單元測試,所述numSquirrels可變攜帶超過 測試之間,即使我可以與不同的羣體的 松鼠中工作。這意味着當我想 喜歡重新開始時,他們的ID會繼續增加。
- 這是使用SquirrelFactory(那些孩子們正在熱烈討論),正確的時間?
- 我是否應該使用依賴注入將工廠傳遞給Squirrel對象,還是應該將Squirrel類包含在與外界有接口的Squirrel Factory中?
- 如果我希望用戶能夠設置ID(或至少提供ID),我該如何確保唯一性?
什麼的目的,從列表中刪除IDS唯一標識符 ? –
當我的對象保存/加載某種文件格式時,這是一項要求。 – sdasdadas
唯一性是有道理的,但我不明白用戶能夠設置ID的重點。 –