альтернативные решения для статических методов и синглтона в базе данных Java - PullRequest
0 голосов
/ 10 апреля 2011

Я хочу создать класс и некоторые методы в этом классе, которые взаимодействуют с базой данных. Многие другие классы должны вызывать эти методы.

Q1: возможно ли создать только один экземпляр этого класса для других?

Q2: Могу ли я дать методы как статические?

В3: Есть ли альтернативное решение для статических и одноэлементных баз данных Java?

Ответы [ 2 ]

1 голос
/ 10 апреля 2011

Вы также можете использовать enum с одной переменной INSTANCE, как показано ниже:

public enum EmployeeDAO {
INSTANCE;

static{
    //Initialize connection info etc.
    init();
}

private EmployeeDAO(){
    //Constructor stuff
}

public Employee getEmployeesById(int id){
            //Replace this with your data retrieval logic
    return null;
}

public Employee getDeadBeatEmployees(){
            //Replace this with your data retrieval logic
    return null;
}

public Employee getAllStars(){
            //Replace this with your data retrieval logic
    return null;
}

public static void init(){

}

}

public class Employee{}

public class SillyCanuck{
    public static void main(String args[]){

    EmployeeDAO.INSTANCE.getEmployeeById(5);
}

}
1 голос
/ 10 апреля 2011

Я еще не использовал синглтоны в Java.Тем не менее, существует довольно хорошее обсуждение по этому вопросу на http://c2.com/cgi/wiki?JavaSingleton

По сути, вы сделаете свой конструктор частным, а также частную статическую переменную конечного экземпляра.Тогда вам понадобится публичный статический метод getInstance, который возвращает ваш экземпляр.Ситуация становится немного сложнее, если вам нужно обеспечить безопасность потоков, поэтому прочитайте статью по ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...