返回现有对象(如果存在)或创建并返回一个新对象(如果不存在)的正确方法是什么?
public class User {
private String name;
private static Map<String, User> users = new HashMap<>();
public User(String name) {
this.name = name;
users.put(name, this);
}
public String getName() {
return name;
}
public static User getUser(String name) {
User user = users.get(name);
if (user == null) user = new User(name);
return user;
}
}
此代码只是此架构的最简单实现,但是在实际应用中应该使用什么?一个工厂?数据库?还有吗?