【问题标题】:Singleton vs Static Preference and Defect单例与静态偏好和缺陷
【发布时间】:2010-11-16 04:07:26
【问题描述】:

当我们想要部署 Web 应用程序时,我们应该使用单例对象还是使用静态来代替? 使用它们的瓶颈是什么? 我应该知道内存问题、并发问题和...。

P.S:刚刚可读的类会发生什么(应该使用静态或单例)

P.S 2:可读可写的类会发生什么

【问题讨论】:

    标签: java static singleton oop


    【解决方案1】:

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

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

    【讨论】:

    • “全静态”类很奇怪。类的实例不代表“事物”。如果没有“东西”,为什么首先要有一个类定义?
    • 我的意思是“静态实例”而不是“所有静态类”。尽管出于组织目的,全静态类确实有一些用途。
    【解决方案2】:

    最后,在您的情况下,单例/静态方法都可以工作。在这两种情况下,我都认为您的辅助方法是纯粹的,不使用或不需要任何状态。最后,使用单例为您提供了一些额外的选项,例如模拟的可能性。通过使用类而不是静态助手,可以在未来某个时候改进设计或替代不同的策略等。使用静态助手,您几乎会陷入困境。

    由于您的方法是纯并发的,因此不会也不会成为问题,因为没有共享状态。

    【讨论】:

    • 没错,但是如果在我的Web应用程序中使用静态方法,我以后可能会遇到问题吗?在我读到的一些地方最好不要在 Web 应用程序中使用静态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多