Singleton Design Pattern和Singleton Object in Java有什么区别?

时间:2016-06-10 13:20:35

标签: java design-patterns singleton singleton-methods

这是最近在接受采访时向我提出的问题。 据我所知,通过单例模式,我们可以实例化单例对象。但是,我想知道我是否正确。

3 个答案:

答案 0 :(得分:2)

你是对的, Singleton设计模式用于实例化Singleton对象:

  

SingleObject类提供了一个静态方法来获取其静态实例   到外面的世界。 SingletonPatternDemo,我们的演示类将使用   SingleObject类获取SingleObject对象。 source

enter image description here

代码如下所示:

public class SingleObject {

    //create an object of SingleObject
    private static SingleObject instance = new SingleObject();

    //make the constructor private so that this class cannot be
    //instantiated
    private SingleObject() {
    }

    //Get the only object available
    public static SingleObject getInstance() {
        return instance;
    }

    public void showMessage() {
        System.out.println("Hello World!");
    }
}

调用SingleObject类:

public class SingletonPatternDemo {

    public static void main(String[] args) {
        //illegal construct
        //Compile Time Error: The constructor SingleObject() is not visible
        //SingleObject object = new SingleObject();

        //Get the only object available
        SingleObject object = SingleObject.getInstance();

        //show the message
        object.showMessage();
    }
}

因此,Singleton设计模式描述了如何使用Singleton对象。 WikiLink

请记住,单身人士实际上是伪装的全球变数。 因此,单身人士被视为弃用。

答案 1 :(得分:1)

Singleton Pattern是路线的地图。 Singleton Object实际上正在经过这条路线。

你可以开车,走路,然后穿过那条路。如果您开车,您可以使用汽车,卡车(或)任何其他方式。

相同的方式单一模式是一种做某事的方法(或)。您可以使用任何语言,计算机(或)平台来实际实现该Singleton对象。

答案 2 :(得分:0)

Singleton_design_pattern是一种设计模式,它将类的实例化限制为一个对象。当需要一个对象来协调整个系统的操作时,这非常有用。

Singleton对象是一个单独的对象,它是通过实现Singleton方法创建的。

要实现这一目标( TRUE Singleton ),

  1. 确保您的课程为final。其他人不能对它进行子类化并再创建一个实例
  2. 将您的单身对象设为private static final
  3. 提供private构造函数和公共getInstance()方法。
  4. 确保此Singleton类仅由一个ClassLoader
  5. 加载
  6. 覆盖readResolve()方法并返回相同的实例。
  7. 有关Singleton的有效实施,请参阅此SE问题。

    What is an efficient way to implement a singleton pattern in Java?