它似乎是一種關鍵值對緩存設計,但非線程安全。
爲什麼兩組代替一個Map?
你可以做一個單身持有人線程單和一個Hashtable
https://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom
import java.util.Hashtable;
import java.util.Map;
public class Properties
{
private Map<String,String> properties = new Hashtable<>();
private Properties(){}
private static class PropertiesHolder{
private final static Properties instance = new Properties();
}
public static Properties getInstance(){
return PropertiesHolder.instance;
}
public void put(String property, String value){
properties.put(property, value);
}
public void get(String property){
properties.get(property);
}
}
,並使用
Properties properties = Properties.getInstance();
properties.put("foo","bar");
properties.get("foo");
與全班同學
class PropertyValue{
String cid;
String property;
String value;
public PropertyValue(String cid, String property, String value) {
this.cid = cid;
this.property = property;
this.value = value;
Properties properties = Properties.getInstance();
properties.put(property, value);
}
}
但我認爲這不是PropertyValue類的維護此關鍵值「store」的響應性。 此存儲應該在新的PropertyValue實例之後(或之前)填充,但不在構造函數中填充。
https://en.wikipedia.org/wiki/Single_responsibility_principle
你可以把你的兩組字符串,如果你不需要通過對的屬性和數據存儲,或者直接存儲一組的的PropertyValue在單
不,它不。但是分開來說,任何類型的可變靜態變量通常都是反模式。 –
更好地讓任何客戶端代碼感興趣的這些值處理索引。 – chrylis
這不工作像一個靜態櫃檯? – marlon