150

问答题 150 /290

请问如何保证单例模式只有唯一实例?你知道的都有哪些方法?

参考答案

参考回答:

单例的实现主要是通过以下两个步骤:

将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例;


在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用。


单例模式的实现主要有两种一种是饿汉式,一种是懒汉式。饿汉式线程安全的单例模式如下:

懒汉式线程安全的单例模式如下