在构建软件时,我经常发现我需要提供很多实例,以便它们可以引用彼此的非静态成员。我可以创建一个类(在 Java 中),如下所示:
public class Handler {
private HashMap<String, Object> map = new HashMap<>();
public void put(String key, Object value) {
map.put(key, value);
}
public Object get(String key, Object value) {
return map.get(key);
}
}
然后,您可以传递此类,并将使用它的每个对象将其自身添加到处理程序中,以便您可以轻松地在实例之间共享内容。您甚至可以制作此类的“静态”版本并添加常用访问变量,例如屏幕尺寸。
我觉得在软件设计层面上使用上述内容是相当糟糕的。这有什么“错误”吗?
最佳答案
您描述的方法的问题是您无法强制和/或保证给定的键具有特定类型的值。这意味着您需要对对象进行转换才能将它们恢复(并希望转换不会失败......)
如果您需要共享项目,请考虑拥有一个存储库,每个对象类型一次。然后,您可以查询此存储库中的项目,并且可以根据需要修改它们。
请记住,这可能会导致并发问题,因此请相应地构建您的存储库。
关于java - 使用这个系统有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37722710/