我目前正在编写包装SQLite数据库的Java类。此类有两种实例化方式:
打开一个现有的数据库。
创建一个新的数据库。
这是我想出的:
public class SQLiteDatabaseWrapper {
public static SQLiteDatabaseWrapper openExisting(File PathToDB) {
return new SQLiteDatabaseWrapper(PathToDB);
}
public static SQLiteDatabaseWrapper createNew(File PathToDB) {
CreateAndInitializeNewDatabase(PathToDB);
return new SQLiteDatabaseWrapper(PathToDB);
}
private SQLiteDatabaseWrapper(File PathToDB) {
// Open connection and setup wrapper
}
}
这是使用Java的方法吗,还是针对这种情况,还有其他最佳实践吗?
最佳答案
你可以做
public SQLiteDatabaseWrapper(File pathToDB, boolean createNew)
throws IOException {
if (!pathToDB.exists()) {
if (createNew) {
// Create new database, potentially throws exception
} else {
throw new FileNotFoundException();
}
}
// Open connection and setup wrapper
}
public SQLiteDatabaseWrapper(File pathToDB) throws IOException {
this(pathToDB, false);
}
避免依赖静态方法来创建数据库包装程序的实例。
关于java - Java中的数据库包装器模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2758310/