Что плохого в синглетонах и static методах
От: fegdri  
Дата: 04.07.10 12:31
Оценка:
У меня есть два класса для работы с mysql (прога десктопная, поэтому без ORM'ом). Была мысль, сделать еще один — синглетон, который будет сначала подключаться к БД при первом вызове, а потом уже эти два класса будут его использовать. Но подключение к БД хочется делать снаружи, а потом уже в него передавать. Ну и в общем, вместо синглетона я сделал вот так, и мне интересно, насколько это плохо и почему.

public class Database {

    private static Boolean ready = false;
    private static Connection con = null;

    public Database() {
    }

    public static void init(Connection connection) throws Exception {
        if (ready == false) {
            if (con != null) {
                con = connection;
                ready = true;
                // тут будут создаваться таблицы, если их нет
            } else {
                throw new Exception("connection == null");
            }
        } else {
            throw new Exception("ready == true");
        }
    }

    public static void destroy() {
        con = null;
        ready = false;
        // тут будет закрываться соединение 
        // и вообще всё, что можно закрыть
    }

    // все остальные (тоже static) методы с запросами,
    // выбрасывающие эксцепшны, если ready == false
}


Я нормален? Посоветуйте что-нибудь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.