色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java的單例和多例

李明濤1年前6瀏覽0評論

在Java編程中,有兩種最常用的實例化方式:單例和多例。這兩種方式的不同之處在于實例化的方式。

單例實例化方式是指在整個應用程序中只創建一個類的實例化對象,而多例實例化方式則是指可以存在多個類的實例化對象。

單例實例化方式使用的是靜態方法getInstance(),該方法會檢查對象是否已經創建,如果沒有創建,則創建一個實例化對象,并返回給調用者。

public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}

多例實例化方式可以使用枚舉或工廠設計模式來實現。使用枚舉的方式能夠避免線程同步問題,同時也能夠保證實例化的對象數量始終是有限的。

public enum Database {
INSTANCE_1,
INSTANCE_2
}
public class ConnectionFactory {
private static final int MAX_CONNECTIONS = 10;
private static ConnectionFactory instance;
private final Listpool = new ArrayList<>(MAX_CONNECTIONS);
private ConnectionFactory() {
for (int i = 0; i< MAX_CONNECTIONS; i++) {
pool.add(createConnection());
}
}
private Connection createConnection() {
// create a new connection
}
public Connection getConnection() {
if (!pool.isEmpty()) {
return pool.remove(0);
} else {
return createConnection();
}
}
public void releaseConnection(Connection connection) {
if (pool.size()< MAX_CONNECTIONS) {
pool.add(connection);
}
}
public static ConnectionFactory getInstance() {
if (instance == null) {
instance = new ConnectionFactory();
}
return instance;
}
}

單例和多例實例化方式各有優缺點,開發者需要根據實際情況來選擇合適的實例化方式。