gpt4 book ai didi

java - java中私有(private)抽象构造函数的不同方式?

转载 作者:行者123 更新时间:2023-12-01 04:29:50 25 4
gpt4 key购买 nike

我有一个像这样的数据库连接类(简化):

public class SQL {

private static SQL instance = null;

private static String ADRESS;

private SQL() {
try {
// Settings
settings = Settings.getInstance();
ADDRESS = settings.getAdress;

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://" + ADRESS + "...");
}
catch (SQLException e) {
throw e;
}
}

public static SQL getInstance() {
if(instance == null) {
instance = new SQL();
}
return instance;
}

public String select(...) {
// SELECT Code
}

public String update(...) {
// UPDATE Code
}

public String insert(...) {
// INSERT Code
}

}

但现在我需要 SQL 的两种变体,它们主要仅在设置上有所不同(不同的数据库)。所以我想把SQL做成一个抽象类,只覆盖两个继承类中的构造函数。但据我所知,不可能有一个抽象的私有(private)构造函数!?那么如何将 SQL 类更改为抽象类呢?

谢谢,我希望有人理解这个问题:)

最佳答案

我会使用这样的东西:

public static SQL getOrMakeInstance1() {
if(instance1 == null) {
instance1 = new SQL(pram11,param12,param13);
}
return instance1;
}


public static SQL getOrMakeInstance2() {
if(instance2 == null) {
instance2 = new SQL(pram21,param22,param23);
}
return instance2;
}

-也许是工厂模式,我不知道设计模式的名称:)

希望对您有所帮助。

关于java - java中私有(private)抽象构造函数的不同方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18089524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com