我目前正在编写包装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/

10-09 03:27