我想到了一个简单的问题:我有我的 DAOFactory 类:
public class DAOFactory {
    public static UserDAO createUserDAO() {
        return new UserDAO();
    }
    public static AdminDAO createUserDAO() {
        return new AdminDAO();
    }
    //etc etc
}
这样做(AFAIK 是标准的),每次有人请求 DAO 时,都会创建一个新实例。实际上,没有必要为每个 DAO 拥有多个实例,除非我遗漏了什么。:D
那么,我们为什么不这样做呢?
public class DAOFactory {
    /* eventually we could use lazy initialization */
    private static UserDAO userDAO = new UserDAO();
    private static UserDAO AdminDAO = new AdminDAO();
    //etc etc
    public static UserDAO createUserDAO() {
        return userDAO;
    }
    public static AdminDAO createUserDAO() {
        return adminDAO;
    }
    //etc etc
}
前者和后者在性能和内存方面有什么区别?我想实际上,对于 DAOFactory 的客户端,这两种实现之间没有区别。