静态类和单例模式区别
2010-04-21 15:21
288 查看
观点一:(单例
)
单例模式比静态方法有很多优势:
首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);
其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化;
再次,单例类可以被集成,他的方法可以被覆写;
最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配
置集,或者可能需要允许用户从外部从外部文件中加载一个配置对象,或者编写自己的。你的代码不需要关注全局的状态,因此你的代码会更加灵活。
观点二:(静态方法
)
静态方法中产生的对象,会随着静态方法执行完毕而释放掉,而且执行类中的静态方法时,不会实例化静态方法所在的类。如果是用singleton,
产生的那一个唯一的实例,会一直在内存中,不会被GC清除的(原因是静态的属性变量不会被GC清除),除非整个JVM退出了。这个问题我之前也想几天,并
且自己写代码来做了个实验。
观点三:(Good!
)
由于DAO的初始化,会比较占系统资源的,如果用静态方法来取,会不断地初始化和释放,所以我个人认为如果不存在比较复杂的事务管理,用
singleton会比较好。个人意见,欢迎各位高手指正。
)
单例模式比静态方法有很多优势:
首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);
其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化;
再次,单例类可以被集成,他的方法可以被覆写;
最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配
置集,或者可能需要允许用户从外部从外部文件中加载一个配置对象,或者编写自己的。你的代码不需要关注全局的状态,因此你的代码会更加灵活。
观点二:(静态方法
)
静态方法中产生的对象,会随着静态方法执行完毕而释放掉,而且执行类中的静态方法时,不会实例化静态方法所在的类。如果是用singleton,
产生的那一个唯一的实例,会一直在内存中,不会被GC清除的(原因是静态的属性变量不会被GC清除),除非整个JVM退出了。这个问题我之前也想几天,并
且自己写代码来做了个实验。
观点三:(Good!
)
由于DAO的初始化,会比较占系统资源的,如果用静态方法来取,会不断地初始化和释放,所以我个人认为如果不存在比较复杂的事务管理,用
singleton会比较好。个人意见,欢迎各位高手指正。
相关文章推荐
- Java中单例模式和静态类的区别
- 静态类、单件模式的区别
- Java中单例模式和静态类的区别
- 突然感悟到了单件模式的意义(单件和静态类的区别)
- 单例模式和静态类的区别(Difference between static class and singleton pattern)
- Java中单例模式和静态类的区别
- 静态类和单例模式区别
- 静态类和单例模式区别
- Java中单例模式和静态类的区别
- 静态类和单例模式区别
- 静态类和单例模式区别
- 静态类和单例模式区别
- 单例模式和静态类的区别
- 静态类和单例模式区别
- Java中单例模式和静态类的区别
- Java中单例模式和静态类的区别
- 策略模式与简单工厂模式区别(转)
- 电商模式的认识以及区别
- 单例模式中,饿汉式和懒汉式的区别?为什么推荐说 用饿汉模式?
- spring中五种自动装配的区别及依赖检查模式的应用