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

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

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

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


不负相思意
浏览 3216回答 4
4回答

拉风的咖菲猫

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

慕仙森

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

扬帆大鱼

单例对象存储在堆,但是静态对象存储在堆叠.我们可以的克隆(如果设计器不允许)单例对象,但是我们不能克隆静态类对象。单例类遵循OOP(面向对象的原则),静态类不。我们可以实现interface使用Singleton类,但是类的静态方法(或例如C#)static class)不能。

江户川乱折腾

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