单例模式
时间: 2023-06-29 20:03:28 浏览: 67
单例模式是一种软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点让其他对象可以访问这个唯一的实例。单例模式在需要控制一个类的实例数量时非常有用,例如数据库连接池、线程池等。
实现单例模式有多种方式,其中比较常见的是饿汉式和懒汉式。
饿汉式是在类加载时就创建唯一的实例,代码如下:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
懒汉式是在第一次访问时才创建唯一的实例,代码如下:
```java
public class Singleton {
private static Singleton instance = null;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
需要注意的是,懒汉式在多线程环境下需要使用 synchronized 关键字来保证线程安全。同时,单例模式可能会被反射、序列化等技术攻击,需要进行相应的防范措施。