设计模式COF23【单例模式】
1.核心作用
保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。
2.常见应用场景
- windos任务管理器
- 数据库连接池的设计
- 操作系统的文件系统
- Servlet 中的Application
3.单例模式的优点
4.常见的单例模式
(1)饿汉式实现
代码
package java1;
/**
* 饿汉式单例模式
*/
public class HungrySingleton {
//类初始化时候,立即加载这个对象加载类时,天然的是线程安全的
private static HungrySingleton instance = new HungrySingleton();
//私有化构造器
private HungrySingleton(){
}
//方法没有同步,调用效率高
public static HungrySingleton getInstance(){
return instance;
}
}
(2)懒汉式实现
代码
package java1;
/**
* 懒汉式单例模式
*/
public class LazySingleton {
//类初始化时,不初始化这个对象(延时加载,真正用的时候创建)
private static LazySingleton instance;
//私有化
private LazySingleton() {
}
//方法同步,调用效率低
public static synchronized LazySingleton getInstance() {
if (null == instance) {
instance = new LazySingleton();
}
return instance;
}
}