设计模式--单例模式
Posted lm970585581
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式--单例模式相关的知识,希望对你有一定的参考价值。
单例模式的意义
有些对象我们只需要一个:线程池、缓存、硬件设备等
如果多个实例会有造成冲突、结果的不一致性等问题
是否可以用静态变量方式来实现?
或者程序员之间协商个全局变量?
单例模式:确保一个类最多只有一个实例,并提供一个全局访问点
单例模式类图:
把构造函数私有化,getInstance中判断uniqueInstance是否已经实例化,若已经实例化直接返回,否则实例化后返回
代码演示:
package com.java.jikexueyuan.singleton; public class Singleton { private static Singleton uniqeInstance=null; private Singleton(){ }; public static Singleton getInstance() { if(uniqeInstance==null) { uniqeInstance=new Singleton(); } return uniqeInstance; } }
单例模式的优化
多线程问题
可能会出现创建多个实例的情况
优化:
同步(synchronized)getInstance方法:频繁情况比较耗资源
“急切”创建实例(饿汉式):在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快
双重检查加锁
以上是关于设计模式--单例模式的主要内容,如果未能解决你的问题,请参考以下文章