静态类和单例模式的区别?
静态类和单例模式之间有什么实际的(即实际的)区别?
它们都可以在不实例化的情况下被调用,它们都只提供一个“实例”,而且它们都不是线程安全的。还有什么区别吗?
是什么使您说单例或静态方法都不是线程安全的?通常都是应实现为线程安全。
单例和一组静态方法之间的最大区别是,单例可以实现接口(或者派生自有用的基类,尽管在我的经验中不那么常见),所以您可以像“只是另一个”实现一样传递单例。
真正的答案是乔恩·斯基特在另一个论坛上.
单例允许访问单个创建的实例-该实例(或者更确切地说,是对该实例的引用)可以作为参数传递给其他方法,并将其视为正常对象。静态类只允许静态方法。
单例允许访问单个创建的实例-该实例(或者更确切地说,是对该实例的引用)可以作为参数传递给其他方法,并将其视为正常对象。
静态类只允许静态方法。
堆
堆叠.
克隆
OOP
interface
static class
Singleton模式与静态类相比有几个优点。首先,单例可以扩展类和实现接口,而静态类不能(它可以扩展类,但不继承它们的实例成员)。单例可以延迟或异步初始化,而静态类通常是在首次加载时初始化的,这会导致潜在的类加载程序问题。然而,最重要的优点是,单例可以在不强迫用户假设只有一个实例的情况下进行多态处理。
面试官系统精讲Java源码及大厂真题
¥ 68.00
举报