用Java设计一个单例模式的Monitor类,使得班里有且只能创建出唯一的一个班长对象。
时间: 2024-03-21 11:37:39 浏览: 90
JAVA设计模式中的单例模式
好的,以下是Java单例模式的Monitor类的代码实现:
```java
public class Monitor {
private static Monitor instance;
private String name;
private Monitor(String name) {
this.name = name;
}
public static synchronized Monitor getInstance(String name) {
if (instance == null) {
instance = new Monitor(name);
}
return instance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void monitor() {
// 监控班级
}
}
```
在这个单例模式的 Monitor 类中,我们定义了一个私有的静态实例 instance 和一个私有的构造方法,以确保无法从外部创建对象。通过定义一个公共的静态方法 getInstance(),我们可以获取唯一的班长对象实例。如果该实例不存在,则创建一个新的对象并返回,否则直接返回已有的对象。
此外,我们还定义了一个 monitor() 方法,用于监控班级。
以下是一个简单的测试代码:
```java
public class Test {
public static void main(String[] args) {
Monitor monitor1 = Monitor.getInstance("张三");
Monitor monitor2 = Monitor.getInstance("李四");
Monitor monitor3 = Monitor.getInstance("王五");
System.out.println(monitor1.getName()); // 输出:张三
System.out.println(monitor2.getName()); // 输出:张三
System.out.println(monitor3.getName()); // 输出:张三
monitor1.monitor(); // 调用监控班级的方法
}
}
```
在这个测试代码中,我们创建了三个 Monitor 对象实例,但它们的名字都是相同的,因为它们都是同一个对象实例的引用。我们还调用了 monitor() 方法,这个方法在所有对象实例中都是相同的。
输出结果如下:
```
张三
张三
张三
```
这个程序可以确保班里有且只能创建出唯一的一个班长对象,并且可以通过 getInstance() 方法获取该对象实例。
阅读全文