1、某班需要班长主持班会,应用单例模式(分别用懒汉式单例和饿汉式单例两种实现形式)产生班长,模拟班会举行。
时间: 2024-04-29 19:23:12 浏览: 153
java + 单例模式 + 懒汉式 + 资源
饿汉式单例实现:
```java
public class ClassLeader {
// 饿汉式单例,类加载时即创建实例
private static ClassLeader instance = new ClassLeader();
// 构造方法私有化,防止外部创建实例
private ClassLeader() {}
// 获取唯一实例的静态方法
public static ClassLeader getInstance() {
return instance;
}
public void presideMeeting() {
System.out.println("班长主持班会。");
}
}
public class Main {
public static void main(String[] args) {
ClassLeader leader = ClassLeader.getInstance();
leader.presideMeeting();
}
}
```
懒汉式单例实现:
```java
public class ClassLeader {
// 懒汉式单例,在第一次使用时创建实例
private static ClassLeader instance;
// 构造方法私有化,防止外部创建实例
private ClassLeader() {}
// 获取唯一实例的静态方法,使用 synchronized 关键字保证线程安全
public static synchronized ClassLeader getInstance() {
if (instance == null) {
instance = new ClassLeader();
}
return instance;
}
public void presideMeeting() {
System.out.println("班长主持班会。");
}
}
public class Main {
public static void main(String[] args) {
ClassLeader leader = ClassLeader.getInstance();
leader.presideMeeting();
}
}
```
在上述代码中,通过单例模式确保了班长只有一个实例。在主函数中,首先通过 getInstance() 获取唯一实例,然后调用 presideMeeting() 方法模拟班长主持班会。
阅读全文