用java设计一个单例模式的Monitor类,使得班里有且只能创建出唯一的一个班长对象。
时间: 2024-02-13 21:06:36 浏览: 70
JAVA设计模式中的单例模式
下面是一个用Java实现的单例模式的Monitor类:
```java
public class Monitor {
private static Monitor monitor = null;
private String leader;
private Monitor() {
leader = "班长";
}
public static Monitor getInstance() {
if (monitor == null) {
monitor = new Monitor();
}
return monitor;
}
public void setLeader(String leader) {
this.leader = leader;
}
public String getLeader() {
return leader;
}
}
```
在这个类中,使用了一个私有的静态变量monitor来保存班长对象的唯一实例,并使用一个私有的构造函数来防止直接创建对象。同时,定义了一个公共的静态方法getInstance()来获取这个唯一实例。在getInstance()方法中,如果monitor为空,则创建一个新的对象,否则返回已有的对象。这样,就保证了在整个应用程序中只有一个Monitor对象存在。
可以通过以下代码来测试单例模式是否生效:
```java
public class Test {
public static void main(String[] args) {
Monitor monitor1 = Monitor.getInstance();
Monitor monitor2 = Monitor.getInstance();
System.out.println(monitor1 == monitor2); // true
monitor1.setLeader("小明");
System.out.println(monitor2.getLeader()); // 小明
}
}
```
在这个测试代码中,我们通过两次调用getInstance()方法来获取Monitor对象,然后比较这两个对象是否相同。由于getInstance()方法保证了只有一个对象实例存在,所以这两个对象应该是相同的。最后,我们通过修改其中一个对象的属性来验证这个单例对象是否是唯一的。
阅读全文