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