观点一:(单例 )
单例模式比静态方法有不少优点:
首先,单例能够继承类,实现接口,而静态类不能(能够集成类,但不能集成实例成员);
其次,单例能够被延迟初始化,静态类通常在第一次加载是初始化;
再次,单例类能够被集成,他的方法能够被覆写;
最后,或许最重要的是,单例类能够被用于多态而无需强迫用户只假定惟一的实例。举个例子,你可能在开始时只写一个配置,可是之后你可能须要支持超过一个配 置集,或者可能须要容许用户从外部从外部文件中加载一个配置对象,或者编写本身的。你的代码不须要关注全局的状态,所以你的代码会更加灵活。
观点二:(静态方法 ) 静态方法中产生的对象,会随着静态方法执行完毕而释放掉,并且执行类中的静态方法时,不会实例化静态方法所在的类。若是是用singleton, 产生的那一个惟一的实例,会一直在内存中,不会被GC清除的(缘由是静态的属性变量不会被GC清除),除非整个JVM退出了。这个问题我以前也想几天,并 且本身写代码来作了个实验。
观点三:(Good! )
因为DAO的初始化,会比较占系统资源的,若是用静态方法来取,会不断地初始化和释放,因此我我的认为若是不存在比较复杂的事务管理,用 singleton会比较好。我的意见,欢迎各位高手指正。spa