单例模式

》简介:

单例对象的类只能允许一个实例存在

》实现思路:

1、单例模式要求类能够有返回对象的一个引用(永远是同一个)

和一个获得该实例的方法(必须是静态方法,getInstance)

2、实现步骤

1)将该类的构造方法定义为私有方法

这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,

只有通过该类提供的静态方法来得到该类的唯一实例;

静态域属于类,不属于任何独立的对象,类的所有实例共享一个静态域,即使没有一个实例对象静态域也存在。

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

》注意事项

单例模式在多线程的应用场合下必须小心使用。如果当唯一实例尚未创建时,有两个线程同时调用创建方法,那么它们同时没有检测到唯一实例的存在,从而同时各自创建了一个实例,这样就有两个实例被构造出来,从而违反了单例模式中实例唯一的原则。 解决这个问题的办法是为指示类是否已经实例化的变量提供一个互斥锁(虽然这样会降低效率)

https://www.cnblogs.com/zhaoyan001/p/6365064.html

看不太懂,需要补一下面向对象编程语言的知识了,Java我来了。

    

原文地址:https://www.cnblogs.com/yueruifeng/p/9960584.html