什么是静态工厂方法?
我们避免直接访问数据库连接,因为它们占用大量资源。因此getDbConnection
,如果我们低于限制,我们将使用静态工厂方法来创建连接。否则,它将尝试提供“备用”连接,如果不存在则失败,并显示异常。
public class DbConnection{
private static final int MAX_CONNS = 100;
private static int totalConnections = 0;
private static Set<DbConnection> availableConnections = new HashSet<DbConnection>();
private DbConnection(){
// ...
totalConnections++;
}
public static DbConnection getDbConnection(){
if(totalConnections < MAX_CONNS){
return new DbConnection();
}else if(availableConnections.size() > 0){
DbConnection dbc = availableConnections.iterator().next();
availableConnections.remove(dbc);
return dbc;
}else {
throw new NoDbConnections();
}
}
public static void returnDbConnection(DbConnection dbc){
availableConnections.add(dbc);
//...
}
}
问题内容: 首先,如果这是一个非常愚蠢的问题,请原谅我,我只是想学习这种语言的核心。我正在阅读《有效的Java》,并且第一章讨论了静态工厂方法与构造方法。他们的利弊。令我困惑的几件事是: 静态工厂方法返回的对象的类是非公共的 -究竟是什么意思? 与构造函数不同,每次调用静态工厂方法都不需要创建新对象 -这是怎么发生的?我仅调用工厂方法来获取新对象,是否将检查方法放入工厂方法中以检查对象是否已存在?
本文向大家介绍iOS类工厂方法是什么 ?相关面试题,主要包含被问及iOS类工厂方法是什么 ?时的应答技巧和注意事项,需要的朋友参考一下 类工厂方法的实现是为了向客户提供方便,它们将分配和初始化合在一个步骤中,返回被创建的对象,并 进行自动释放处理。这些方法的形式是+ (type)className...(其中 className不包括任何前缀)。 工厂方法可能不仅仅为了方便使用。它们不但可以将分配
我在读有效的Java课本。第一项是关于使用静态工厂方法而不是公共构造函数。我的疑问是,如果我正在指定我如何在中指定静态工厂方法?因为Java不支持内部的静态方法。教材指定了如何创建包含公共静态工厂方法的不可实例化类。但是这些方法如何访问实现类的私有构造函数呢? 教材中说,如果要定义,请创建一个不可实例化的类,并在该类中包含静态工厂方法。但是类中定义的方法如何访问具体实现的私有构造函数 编辑:-以下
问题内容: 我的应用程序有一个问题,当我登录时,该应用程序崩溃并且出现错误: 我试图弄乱gradle并更改变量。这个问题似乎源于此软件包: 然后,它还引用了以下内容: 这是我的摇篮 关于如何找到纠正错误的方法有任何想法吗? 问题答案: 尝试切换到Java 8兼容性,以对某些库进行适当的除糖处理: 此外,Google JSON API可能更需要。
在Java中是否有一个静态工厂方法来创建队列? 或 但无法找到对队列(或出队列)进行同样操作的方便方法。我找到的唯一解决办法是:
问题内容: Java main()方法的方法签名为: 此方法是否有理由是静态的? 问题答案: 该方法是静态的,因为否则会产生歧义:应调用哪个构造函数?特别是如果你的班级是这样的: JVM应该调用吗?它应该做什么x? 如果不是,JVM是否应该在不运行任何构造方法的情况下实例化?我认为不应该这样,因为这将对整个类进行特殊处理-有时你有一个尚未初始化的实例,并且必须在每个可以调用的方法中进行检查。 对于