java单例模式模拟大臣
时间: 2023-10-14 10:38:53 浏览: 70
好的,以下是一个简单的单例模式模拟大臣的例子:
```java
public class Minister {
private static Minister instance;
private String name;
private Minister(String name) {
this.name = name;
}
public static synchronized Minister getInstance(String name) {
if (instance == null) {
instance = new Minister(name);
}
return instance;
}
public String getName() {
return name;
}
}
```
在上面的代码中,我们创建了一个名为 `Minister` 的类,它模拟了一个大臣的角色。这个类只有一个私有的静态属性 `instance`,它用来存储唯一的实例对象。我们使用了线程安全的单例模式,确保在多线程环境下也能保证只有一个实例对象。
在类的构造函数 `Minister` 中,我们将传入的名称赋值给 `name` 属性。
`getInstance` 方法是获取 `Minister` 实例的唯一入口。在这个方法中,我们先检查 `instance` 是否已经有了值,如果没有就创建一个新的实例并赋值给 `instance`。最后返回 `instance`。
当我们创建 `minister1` 和 `minister2` 两个实例对象时,由于 `Minister` 是一个单例模式,所以实际上它们指向的是同一个对象。因此,当我们比较 `minister1` 和 `minister2` 是否相等时,输出的结果是 True。
最后,我们输出了 `minister1` 和 `minister2` 的姓名,发现它们都是 "张大臣"。这是因为 `minister1` 和 `minister2` 指向的是同一个对象,它们的属性都是相同的。
阅读全文