欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

单例模式详解

程序员文章站 2022-07-12 23:37:48
...

 应用场景:在程序中只需要有一个该类的实例对象,例如管理员等。
 * 实现思路(基本):
 * 1、通过私有化构造方法,只允许内部本身创建该类的对象;
 * 2、在内部加载Static静态对象,控制它只有一个对象;
 * 3、内部创建共有方法,用来创建,获取该对象。
 *
 * 存在的缺陷:
 * 在多线程的情况下,多个线程同时方法,这个方法的时候,会出现判断是否存在出错的问题。
 *
 * 解决方法1:
 * 使用线程锁,使得该方法无法被多个线程同时调用。
 * 缺点:性能太差,若经常调用,大大影响程序的性能。
 *
 * 解决方法2:
 * 在类加载的时候便对其进行实例化。
 * 缺点:若该类长时间不用,或是本身就比较大的情况下,会浪费大量的内存资源。
 *
 * 解决方法3:
 * 使用静态内部类的形式进行加载,当调用get方法时,才会创建,该类的实例。
 * 完美的解决了方法2的缺陷。
 *
 * 解决方法4:
 * 双重校验法,在加载调用那个get方法的时候,在里面额外加一层线程锁。
 * 和方法2类似。

 

具体代码请参考附件。