banq
2007-03-07 11:39
2007年3月4日javalobby文章:

Do we really need singletons ?

http://www.javalobby.org/java/forums/t91076.html

该文讨论了实现真正得singleton的难度,已经对scope的考虑,任何单例都是一定条件和一定范围下的单例。

imfat
2007-03-09 05:58
个人感觉对于 Singleton 的讨论有一点偏题:

1 死锁和同步性能陷阱是 concurrent programming的问题,用不用 Singleton 都存在。Singleton成为性能瓶颈只有在 lazy initialization 的时候才会体现。用Singleton可能出现死锁不能成为不使用Singleton的原因。

2 许多人认为Singleton是邪恶的,其实是因为它破坏了面向对象编程的一致性。比如说,它强制程序员知道他们在和一个特殊的类,Singleton类,打交道;再比如说它不能用于实现多态。所以如果在程序中显式的使用Singleton,会造成修改不方便,Unit Test 不方便,等等。这就是为什么IoC帮助解决了这个问题:不是容器不用Singleton ,而是它帮你用了,所以作为程序员的你就不用关心了。你甚至不知道你在用的这个实例是不是用Singleton产生的。如果将来你不想让使用Singleton了,很容易,在 xml 文件里配制一下就是了。所以说,不是说不用Singleton思想,而是说尽量避免滥用Singleton,这才是关键。

aya
2007-03-22 17:45
Singleton优点在于可以实现在使用时创建实例

这在c++是很有用的.

alwaysmm
2007-03-29 21:08
这坛子的讨论够热烈,也非常专业。

看大家讨论自己真的非常心虚,

以前都没注意SINGLETON是否会死锁。

学习中

oxygen
2007-05-28 11:10
支持kewan

anonymous的理解太教条了。

Singleton的本质是使用某种手段确保某个类只有一个全局的实例。

private的constructor和static的实例获取函数只是实现方法之一。

而用其他实现方法,只要确保全局只有唯一实例,那本质上就还是Singleton。

banq
2007-05-28 11:48
相关讨论:

http://www.jdon.com/jivejdon/thread/31851.html

ztwaker
2007-06-04 10:39
无语……

猜你喜欢
4Go 上一页 1 2 3 4