java 多例_Java多例设计模式实例详解
时间: 2023-10-03 19:11:01 浏览: 125
Java多例设计模式是单例模式的一种变体。它允许创建有限数量的实例,而不是像单例模式一样只创建一个实例。在Java多例模式中,每个实例都有一个唯一的名称,以便在需要时可以使用。
下面是一个Java多例模式的示例代码:
```java
public class Database {
private static Map<String, Database> instances = new HashMap<String, Database>();
private String name;
private Database(String name) {
this.name = name;
}
public static synchronized Database getInstance(String name) {
if (!instances.containsKey(name)) {
instances.put(name, new Database(name));
}
return instances.get(name);
}
public String getName() {
return name;
}
}
```
在这个示例中,我们创建了一个名为Database的类,它有一个私有构造函数和一个静态的getInstance方法,该方法根据名称获取或创建一个实例。我们使用一个Map来存储实例,以便在需要时可以检索它们。如果需要创建一个新的实例,我们将它添加到Map中。
以下是一个使用多例模式创建数据库实例的示例:
```java
Database db1 = Database.getInstance("db1");
Database db2 = Database.getInstance("db2");
Database db3 = Database.getInstance("db1");
System.out.println(db1.getName()); // Output: db1
System.out.println(db2.getName()); // Output: db2
System.out.println(db3.getName()); // Output: db1
```
在这个示例中,我们创建了三个Database实例,其中两个具有不同的名称,但具有相同的名称的实例是相同的。我们使用getName方法来检索实例的名称,并验证它们是否正确。
总的来说,Java多例模式是一个灵活和有用的设计模式,允许我们创建有限数量的实例,并根据需要使用它们。
阅读全文