java数据库中静态方法和单例的替代解决方案

时间:2011-04-10 17:25:13

标签: java android database

我想在该类中创建一个类和一些与数据库交互的方法。 许多其他类应调用该方法。

Q1:是否可以为其他人创建该类的一个实例?

Q2:我可以将方法设为静态吗?

问题3:对于java数据库,是否存在静态和单例的替代解决方案?

2 个答案:

答案 0 :(得分:1)

我还没有在Java中使用单例。但是,http://c2.com/cgi/wiki?JavaSingleton

对这个问题进行了很好的讨论

基本上,您将使构造函数与私有静态最终实例变量一起私有。然后,您将需要一个返回实例的公共静态getInstance方法。如果你需要线程安全,它会变得有点复杂,所以阅读链接的文章。

答案 1 :(得分:1)

您还可以使用带有单个变量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);
}

}