java - 使用这个系统有什么问题吗?

标签 java software-design

在构建软件时,我经常发现我需要提供很多实例,以便它们可以引用彼此的非静态成员。我可以创建一个类(在 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/

相关文章:

c++ - 如何确保仅在 C++ 中提供时才使用特定的类功能?

java - Apache POI 异常

java - 如何检查用户输入的是Y还是N

node.js - 仅在回调nodejs中完成一次调用异步函数

java - 为什么只对一个类使用 Java 接口(interface)?

html - 寻找一种高效抽象内联样式的系统方法

c - 为队列设计调整大小函数

java - GetStringCritical() 可以抛出异常吗?

java - Joda betweenDays (LocalDate,LocalDate) 不适用

java - 使用 unicode 符号作为 Java 标识符是个好主意吗?