使用单例模式实现无论我们在哪所看到的月亮是同一个月亮(饿汉单例模式、懒汉单例模式)(Java)
时间: 2024-05-01 14:15:01 浏览: 124
使用单例模式可以确保在一个应用程序中只有一个实例对象存在,无论我们在哪里看到的月亮都是同一个月亮。在Java中,可以使用饿汉单例模式或懒汉单例模式来实现。
1. 饿汉单例模式:
饿汉单例模式是指在类加载时就创建实例对象,并且提供一个公共的静态方法来获取该实例。具体实现如下:
```java
public class Moon {
private static Moon instance = new Moon();
private Moon() {
// 私有构造方法,防止外部实例化
}
public static Moon getInstance() {
return instance;
}
}
```
在上述代码中,`Moon`类的构造方法被声明为私有的,这样外部就无法直接实例化该类。通过`getInstance()`方法可以获取到唯一的实例对象。
2. 懒汉单例模式:
懒汉单例模式是指在第一次使用时才创建实例对象,并且也提供一个公共的静态方法来获取该实例。具体实现如下:
```java
public class Moon {
private static Moon instance;
private Moon() {
// 私有构造方法,防止外部实例化
}
public static synchronized Moon getInstance() {
if (instance == null) {
instance = new Moon();
}
return instance;
}
}
```
在上述代码中,`Moon`类的构造方法同样被声明为私有的,通过`getInstance()`方法来获取实例对象。在第一次调用`getInstance()`方法时,会判断实例对象是否为空,如果为空则创建一个新的实例对象,否则直接返回已有的实例对象。
阅读全文