我想在该类中创建一个类和一些与数据库交互的方法。 许多其他类应调用该方法。
Q1:是否可以为其他人创建该类的一个实例?
Q2:我可以将方法设为静态吗?
问题3:对于java数据库,是否存在静态和单例的替代解决方案?
答案 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);
}
}