Java 仅使用一个可从所有其他类访问的实例初始化

Java 仅使用一个可从所有其他类访问的实例初始化,java,class,object,Java,Class,Object,我需要创建一个包含大量信息的类,但初始化速度较慢。我正在尝试从其他类访问此类。这个类应该只创建一次,因为它加载速度慢并且占用大量内存。我唯一想做的就是在loader类中创建一个类的实例,然后在我切换它们时将它从一个类传递到另一个类 我觉得有更好的方法可以做到这一点。我想让这个类中的所有方法和变量都是静态的,但是我仍然需要在每个新类中创建一个新的对象,我认为这样会重新初始化object,这是我不想做的 我不确定是否有更好的方法来做到这一点。。。想法?你想要的是单身。实现这一点的最简单方法是使用枚举

我需要创建一个包含大量信息的类,但初始化速度较慢。我正在尝试从其他类访问此类。这个类应该只创建一次,因为它加载速度慢并且占用大量内存。我唯一想做的就是在loader类中创建一个类的实例,然后在我切换它们时将它从一个类传递到另一个类

我觉得有更好的方法可以做到这一点。我想让这个类中的所有方法和变量都是静态的,但是我仍然需要在每个新类中创建一个新的对象,我认为这样会重新初始化object,这是我不想做的


我不确定是否有更好的方法来做到这一点。。。想法?

你想要的是单身。实现这一点的最简单方法是使用枚举实例——这是解决在尝试使用静态成员时可能出现的线程安全问题的最简单方法

这就是说,单例通常被认为是架构问题的标志。这是一条普遍的规则,你很可能有很好的理由这样做-只要确保你的理由是有效的。单例反模式倾向于在应用程序的不同层之间创建强耦合,导致脆弱、难以测试的代码


另一种选择是,如果依赖项注入是您的一种选择,那么构建一次对象并在需要的地方注入它。注意,使用依赖项注入不需要DI框架,只需将对象传递给依赖对象的构造函数即可。这使您能够超级了解实际使用该单例的位置。

singleton…..但实际上并非如此。使用依赖注入。如果您能正确编写场景,我们可以提供帮助。你为什么需要这么大的班级?为什么你不能让它静止?访问它的目的是什么?如果类是静态的,则不需要在每个类中创建一个新类。也就是说,这将只是一个巨大的全球变量。通常情况下,最好避免将所有数据放入mule类。为类提供他们需要的数据,如果另一个类有数据,则要求提供数据的副本。有关讨论/解释和简单代码,请参阅。我想把这个问题作为一个重复的节选来结束,因为你没有明确要求单身。