为了账号安全,请及时绑定邮箱和手机立即绑定

静态类和单例模式的区别?

/ 猿问

静态类和单例模式的区别?

静态类和单例模式的区别?

静态类和单例模式之间有什么实际的(即实际的)区别?

它们都可以在不实例化的情况下被调用,它们都只提供一个“实例”,而且它们都不是线程安全的。还有什么区别吗?


查看完整描述

4 回答

?
拉风的咖菲猫

是什么使您说单例或静态方法都不是线程安全的?通常都是实现为线程安全。

单例和一组静态方法之间的最大区别是,单例可以实现接口(或者派生自有用的基类,尽管在我的经验中不那么常见),所以您可以像“只是另一个”实现一样传递单例。


查看完整回答
反对 回复 2019-06-01
?
慕仙森

真正的答案是乔恩·斯基特在另一个论坛上.

单例允许访问单个创建的实例-该实例(或者更确切地说,是对该实例的引用)可以作为参数传递给其他方法,并将其视为正常对象。

静态类只允许静态方法。


查看完整回答
反对 回复 2019-06-01
?
扬帆大鱼
  1. 单例对象存储在

    ,但是静态对象存储在

    堆叠.

  2. 我们可以的

    克隆

    (如果设计器不允许)单例对象,但是我们不能克隆静态类对象。
  3. 单例类遵循

    OOP

    (面向对象的原则),静态类不。
  4. 我们可以实现

    interface

    使用Singleton类,但是类的静态方法(或例如C#)

    static class

    )不能。


查看完整回答
反对 回复 2019-06-01
?
慕雪9262066

Singleton模式与静态类相比有几个优点。首先,单例可以扩展类和实现接口,而静态类不能(它可以扩展类,但不继承它们的实例成员)。单例可以延迟或异步初始化,而静态类通常是在首次加载时初始化的,这会导致潜在的类加载程序问题。然而,最重要的优点是,单例可以在不强迫用户假设只有一个实例的情况下进行多态处理。


查看完整回答
反对 回复 2019-06-01

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信