1

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

4

3 回答 3

2

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

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();
    }
}

因此,单例设计模式描述了如何使用单例对象。维基链接

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

于 2016-06-10T13:24:38.070 回答
1

单例模式是路线图。单例对象实际上正在通过这条路线。

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

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

于 2016-06-10T13:44:51.977 回答
0

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

单例对象是通过实现单例方法创建的单个对象。

为了实现这一点(TRUE Singleton),

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

也请参阅此 SE 问题以有效实施Singleton.

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

于 2016-06-11T13:00:59.107 回答