首页 > 解决方案 > 对于单例类,我们还可以创建单独的实例吗?

问题描述

例如,如果单例是:

class Singleton 
{ 
    private static Singleton single_instance = null; 
  
    public String s; 
  
    public Singleton(String test) 
    { 
        s = "Hello I am a string part of Singleton class"; 
    } 
  
    public static Singleton getInstance() 
    { 
        if (single_instance == null) 
            single_instance = new Singleton("valueA"); 
  
        return single_instance; 
    } 
} 

可以进行以下操作吗?

  1. 如果从一个地方调用该类,例如A类,我们使用这个单例,Singleton.getInstance();
  2. 如果在所有其他地方调用该类,则创建一个新实例:Singleton singleton = new Singleton();

标签: javaoopsingleton

解决方案


“单例”是一种特定模式,其中一个关键思想是您不要让其他类创建您的类的实例。

如果您使构造函数可公开访问,则您不再遵循“单例”模式,您应该将其称为其他名称,以避免让团队中的其他人感到困惑。

您可以将其称为“共享实例”。

可以进行以下操作吗?

只要以后不出现问题就可以了。如果不了解您的问题的具体情况,很难说更多。


推荐阅读