我有几个类来存储数据(DataClassA、DataClassB等)和每个类中的许多对象(objectA1、objectA2、objectB1、objectB2、objectB3等等)。现在,每个对象都有一个ID号,并将存储在适当的哈希表(hashtableA、hashtableB等)中。
我想从其他几个更程序化的类访问这些对象。我的问题是我应该放哪门课?我不希望他们被反复从文件中读出来。
我在这个问题的措辞上有困难,所以如果有什么不清楚的地方,请问。谢谢你的反馈或回答。
发布于 2015-08-28 02:44:53
我有几个类来存储数据(DataClassA、DataClassB等)和每个类中的许多对象(objectA1、objectA2、objectB1、objectB2、objectB3等等)。
如果您只有要存储数据的类,而您的应用程序没有数据库(建议使用数据库),则。值得注意的是,在将来的某个时候,如果应用程序的功能不断增加,您就不可能管理Object中的所有数据。
我想从其他几个更程序化的类访问这些对象。
好的,如果多个类同时访问它或尝试修改它,该怎么办?在多线程情况下,您应该更好地使用线程安全选项。是!您已经使用了Hashtable,但是这可能会影响性能,ConcurrentHashMap是一个更好的选择。如果您使用的是单线程应用程序,则最好使用HashMap。
现在,每个对象都有一个ID号,并将存储在适当的哈希表(hashtableA、hashtableB等)中。
因此,您将在这里管理Object中的所有数据,并使用Id of Object将其存储到HashTable中。如果是单线程,您可以尝试以下方式,
创建一个父类Data,它应该由所有子数据类进行扩展。
class Data {
private Long id;//Unique id of Object by using some strategy to allocate unique
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
public class DataUtils {
//Created only once for whole application
private static final Map<Long, Data> DATA_MAP = new HashMap<Long, Data>();
public void addObjectToMap(Data data) {
DATA_MAP.put(data.getId(), data);
}
public Data getData(Long id) {
return DATA_MAP.get(id);
}
}注意:这只是一个例子,您可能需要相应地在您的情况下使用它。
https://stackoverflow.com/questions/32262406
复制相似问题