Java Singleton示例,我可以像这样更改代码吗?

时间:2017-12-12 02:31:33

标签: java singleton

这是创建单例类的原始代码:

package com.hsp.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


final public class MySessionFactory {
    private static SessionFactory sessionFactory = null;

    private MySessionFactory() {

    }

    static {
        sessionFactory = new Configuration().configure().buildSessionFactory();
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

我的问题是,我可以直接使用:

声明sessionFactory
 private static SessionFactory sessionFactory = 
 new Configuration().configure().buildSessionFactory();

这样整个代码可以如下:

package com.hsp.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


final public class MySessionFactory {
    private static SessionFactory sessionFactory = 
    new Configuration().configure().buildSessionFactory();

    private MySessionFactory() {

    }

    public static SessionFactory getSessionFactory() {
    return sessionFactory;
    }
}

如果没有,那么两个代码块之间有什么区别?第二个是否有任何缺陷?

1 个答案:

答案 0 :(得分:0)

我认为最好将静态变量声明和静态操作块分开。