abe*_*ger 5 java oop static class
我正在处理的应用程序有一个维护数据库连接的类.此类的所有成员都是静态的,以强制执行类似单一的模式,因此实际的连接逻辑在静态初始化程序块中执行:
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
sessionFactory = new Configuration().configure().buildSessionFactory();
}
static void openSession() {
//open session with sessionFactory
}
public static Session currentSession() {
//return the currently open session
}
static void closeSession() {
//close the currently open session
}
}
Run Code Online (Sandbox Code Playgroud)
但是,应用程序现在需要打开与第二个数据库的数据库连接.现在这个类的结构方式,在保持上述模式的同时维持第二个连接的唯一方法是创建第二个类(类似于SecondHibernateUtil)并更改初始化块中的一行配置.这感觉真的是浪费了大量的复制/粘贴.
任何人都可以提出一种方法,我可以重新设置此设置以同时维护多个连接,同时不会对已经调用现有方法的代码过度破坏吗?
保留静态方法并让它们委托给默认实例的相应实例方法。
对于辅助数据库,允许通过任何方式创建更多实例并通过其实例方法访问它们。
然后,您可以减少静态方法的调用者,当它们全部消失时,删除静态方法。
| 归档时间: |
|
| 查看次数: |
6862 次 |
| 最近记录: |