Java 工厂模式 不清楚要使用多少数量的多例怎么编写
时间: 2023-05-24 20:01:27 浏览: 48
针对你的问题,实现工厂模式时借助多例模式可以更好地管理对象的生命周期。具体来说,可以使用 Map 存储多例对象,通过传递参数获取指定的多例对象。下面是基于 Java 实现的多例工厂模式代码示例:
```java
public class MultiInstanceFactory {
private static final int MAX_NUM = 5;
private static final Map<String, MultiInstanceFactory> instanceMap = new HashMap<>();
private static int curNum = 0;
private String name;
private MultiInstanceFactory(String name) {
this.name = name;
}
public static synchronized MultiInstanceFactory getInstance(String name) {
if (!instanceMap.containsKey(name)) {
if (curNum < MAX_NUM) {
instanceMap.put(name, new MultiInstanceFactory(name));
curNum++;
} else {
return null;
}
}
return instanceMap.get(name);
}
public void showMessage() {
System.out.println("Name: " + name);
}
}
```
在这个示例中,我们限制最大数量为 5,当数量满足时无法创建新的实例。同时,我们使用 Map 存储多例对象,通过传递名字获取对象。使用方式如下:
```java
MultiInstanceFactory instance1 = MultiInstanceFactory.getInstance("Instance1");
instance1.showMessage();
MultiInstanceFactory instance2 = MultiInstanceFactory.getInstance("Instance2");
instance2.showMessage();
```
输出结果为:
```
Name: Instance1
Name: Instance2
```