只有一个可从所有其他类访问的实例的类

时间:2014-04-28 22:13:55

标签: java class object

我需要创建一个包含大量信息的类(初始化速度慢)。我试图从我的其他类访问此类。此类只应创建一次,因为它加载速度慢并占用大量内存。我唯一的想法是如何在loader类中创建类的实例,然后在切换它时将它从类传递给类。

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

我不确定是否有更好的方法来做这些...想法?

1 个答案:

答案 0 :(得分:0)

你要求的是一个单身人士。最简单的方法是使用枚举实例 - 这是解决当您尝试使用静态成员时可能出现的线程安全问题的最简单方法。

也就是说,单身人士通常被认为是建筑问题的标志。这是一般规则,您可能有充分的理由这样做 - 只需确保您的理由有效。单例反模式倾向于在应用程序的不同层之间创建强耦合,导致脆弱,难以测试的代码。

作为替代方案,如果依赖注入是您的选项,则构造您的对象一次并在需要的地方注入它。请注意,您不必使用DI框架来使用依赖项注入(您只需将对象传递给依赖对象的构造函数)。这使您可以高度了解实际使用该单例的位置。