繁体   English   中英

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

[英]What is the difference between Singleton Design Pattern and Singleton Object In Java?

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

你是对的,Singleton Design Pattern用于实例化Singleton对象:

SingleObject类提供了一个静态方法来将其静态实例传递给外部世界。 SingletonPatternDemo,我们的演示类将使用SingleObject类来获取SingleObject对象。 资源

在此输入图像描述

代码如下所示:

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

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

单例模式是路线的地图。 Singleton Object实际上正在经历该路线。

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

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

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

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

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

  1. 确保你的课程是final 其他人不能对它进行子类化并再创建一个实例
  2. 将您的单例对象设为private static final
  3. 提供private构造函数和公共getInstance()方法。
  4. 确保此Singleton类仅由一个ClassLoader
  5. 覆盖readResolve()方法并返回相同的实例。

有关Singleton有效实现,请参阅此SE问题。

在Java中实现单例模式的有效方法是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM