1. 优点(相比于全局变量):
1.1 避免污染全局空间。
1.2 根本上避免了类被重复实例化。因为只能从唯一的接口得到类的instance。
1.3 允许更灵活的实现策略。
2 缺点:
2.1 构造函数没法传递参数。
2.2 销毁instance时,确定销毁顺序很困难。Instance在需要时创建,但没有信息指引不同类型Singleton instance之间的依赖关系。
2.3 不同厂商的编译器和硬件平台,有可能使用不同的优化措施,这导致Singleton模式在多线程环境下可能有严重的潜在问题,即使使用"Double-checked locking"等措施也不能完全避免。下边这篇文章针对Java,但大部分也适用于C++:
http://www.ibm.com/developerworks/java/library/j-dcl.html
Thursday, October 21, 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment