在软件工程中,设计模式是为常见问题提出的典型解决方案。总共有23种设计模式,这些模式被分为三大类:创建型、结构型和行为型。单例模式是其中的一种创建型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。
单例模式通过私有化其构造函数来确保类的实例只能被创建一次。如果实例已经存在,则直接返回现有的实例,否则创建一个新的实例。这确保了在整个应用程序中,该类只有一个实例存在。
下面是一个Java中实现单例模式的基本示例,使用了所谓的“懒汉式”加载方法,这种方法第一次调用getInstance()
方法时才创建实例:
java复制代码
public class Singleton {
// 私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载
private static Singleton instance = null;
// 私有构造方法,防止被实例化
private Singleton() {
}
// 静态工程方法,创建实例
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
// 如果该对象被用于序列化,可以保证对象在序列化前后保持一致
public Object readResolve() {
return instance;
}
}
这个例子中使用了懒汉式的单例实现,它是线程安全的,因为getInstance()
方法是同步的。但是,每次调用getInstance()
方法都会进行线程锁定检查,这可能会影响性能。在高性能需求下,可以考虑使用其他单例实现方式,如双重检查锁定或静态内部类等方法,以减少性能开销。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。