单例模式 vs 静态变量、偏好和缺陷

5
当我们想要部署Web应用程序时,应该使用单例对象还是使用静态对象呢?它们各自的瓶颈是什么? 我需要了解内存问题、并发问题等等。
附注:对于刚刚可读的类(应该使用静态或单例)会发生什么?
附注2:对于可读写的类会发生什么?
2个回答

3
最终在您的情况下,单例/静态方法都可以工作。我理解在这两种情况下,您的辅助方法都是纯净的,不需要使用或需要任何状态。最终使用单例会给您一些额外的选项,例如可能性进行模拟。通过使用类而不是静态辅助程序,未来存在演变设计或替代不同策略的可能性等。使用静态辅助程序,你几乎无法改变。
由于您的方法是纯净的,因此并发不会成为问题,因为没有共享状态。

没错,但如果在我的Web应用程序中使用静态方法,以后可能会遇到问题吗? 我在某个地方读到最好不要在Web应用程序中使用静态方法。 - Am1rr3zA

2

静态变量:在所有线程中共享的单个实例,对静态成员的任何访问都将返回相同的实例。可以创建相同类型的其他实例,没有限制。

单例模式:整个应用程序只有一个实例。不能在应用程序中创建此类型的其他实例。


一个“全静态”类很奇怪。没有任何实例代表着这个类的“东西”。如果没有“东西”,为什么要首先定义一个类呢? - S.Lott
1
我指的是“静态实例”,而不是“所有静态类”。虽然对于组织目的,所有静态类确实有一定的用途。 - Andrew Hare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接