单例模式的具体实现代码
时间: 2024-05-09 12:14:22 浏览: 16
单例模式是一种创建型设计模式,其目的是确保一个类只有一个实例存在,并提供对该实例的全局访问点。
以下是一个单例模式的具体实现代码:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {
// 私有构造函数,防止外部实例化对象
}
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
// 其他业务方法...
}
```
在上面的代码中,`Singleton` 类的构造函数是私有的,这意味着不能从外部直接创建类的实例。`getInstance()` 方法是获取单例对象的全局访问点,它首先检查实例是否已经创建,如果没有,则创建一个新的实例并返回。在此过程中,使用了 `synchronized` 关键字来确保线程安全,避免多个线程同时创建多个实例。
这种实现方法称为懒汉式单例模式,在需要时才创建实例。如果你需要在程序启动时就创建单例对象,可以使用饿汉式单例模式,如下所示:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
// 私有构造函数,防止外部实例化对象
}
public static Singleton getInstance() {
return instance;
}
// 其他业务方法...
}
```
在上面的代码中,单例对象在类加载时就被创建,因此可以保证在程序运行期间只有一个实例对象。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)