单例模式就是某个类只存在一个对象(只new 一次),当某个类的初始化比较耗时,耗资源的时候,比如hibernate写在Dao模式中创建session的时候必须写成单例模式,因为你每做一次数据库的操作,都必须创建一个session,这时候用单例模式是最好的,每次都只是同一个实例,sessionFactory 这个是单例的当然了是一个数据库的时候是单例的,整个服务仅使用这么一个工厂就足够了。好多工厂类基本上都是单例的。 单列模式中的两种基本模式 饿汉式、懒汉式。饿汉式是线程安全的,在加载类时创建实例静态的对象供系统使用,以后不在改变。懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。懒汉式的优点是延时加载、缺点是应该用同步。 饿汉式(建议使用)class Singleton { private static Singleton instance=new Singleton(); private Singleton(){} public static Singleton getInstance() { return instance; }}懒汉式class Singleton { private static Singleton instance=null; private Singleton(){} public static synchronized Singleton getInstance() { if(instance==null) instance=new Singleton(); return instance; }}
时间: 2024-11-05 15:56:30