2010-01-24 68 views
1

可能重复:
Advantage of Static class over use of Singleton单型态VS静态类型

通常,每次我需要我使用的单例模式的单个系统范围对象。 M问题是,为什么我不应该将对象实现为静态并自然地获得单个对象行为?是否有任何缺点使用静态类型超过单例因式分解对象?

+2

可能重复的东西本身被封闭为重复:http://stackoverflow.com/questions/839383/advantage-of-static-class-over-use-of-singleton – APC 2010-01-24 17:11:03

回答

0

静态类型是少得多(单位)可测试的。单身人士可以传递(作为参数)并继承。

有关示例等看到这篇文章:

http://dotnetperls.com/singleton-static

一般来说,你应该避免系统范围的对象,因为这些建议你有全局状态。辛格尔顿用来管理对共享资源的访问(而不是状态)。

我相信最少有一个GoF记录在案,说在他们的书中包括单身人士是一个错误,在很多情况下它被用作反模式。

0

取决于你想要做的对象。如果只是调用方法,那么就使用静态方法。如果你想传递这个对象,并且用它来做对象导向的东西,也就是多态,那么就把它作为对象的方式。