如何实现单例模式

时间:2025-06-14 01:36:08

摘要:在软件设计领域,单例模式是一种常见的设计模式,它确保一个类只有一个实例,并提供一个访问它的全局点。今天,我将与您分享如何实现单例模式的几种方法,帮助您在实际编程中更好地应用这一模式。  一、懒汉式单例模式1.创建一个私有静态实例变量2.提供一个公有的静态方法,返回该实例  publicclassLazySingleton{ privates...

在软件设计领域,单例模式是一种常见的设计模式,它确保一个类只有一个实例,并提供一个访问它的全局点。今天,我将与您分享如何实现单例模式的几种方法,帮助您在实际编程中更好地应用这一模式。

 

一、懒汉式单例模式

1.创建一个私有静态实例变量

2.提供一个公有的静态方法,返回该实例

 

publicclassLazySingleton{

privatestaticLazySingletoninstance

privateLazySingleton(){}

publicstaticLazySingletongetInstance(){

if(instance==null){

instance=newLazySingleton()

returninstance

 

二、饿汉式单例模式

1.创建一个私有的静态实例变量,并直接初始化

2.提供一个公有的静态方法,直接返回该实例

 

publicclassEagerSingleton{

privatestaticfinalEagerSingletoninstance=newEagerSingleton()

privateEagerSingleton(){}

publicstaticEagerSingletongetInstance(){

returninstance

 

三、双重校验锁单例模式

1.创建一个私有的静态实例变量,不初始化

2.提供一个公有的静态方法,内部进行双重校验锁,确保只创建一个实例

 

publicclassDoubleCheckedLockingSingleton{

privatestaticvolatileDoubleCheckedLockingSingletoninstance

privateDoubleCheckedLockingSingleton(){}

publicstaticDoubleCheckedLockingSingletongetInstance(){

if(instance==null){

synchronized(DoubleCheckedLockingSingleton.class){

if(instance==null){

instance=newDoubleCheckedLockingSingleton()

returninstance

 

四、静态内部类单例模式

1.创建一个私有的静态内部类,包含实例变量

2.在私有内部类中创建实例

3.提供一个公有的静态方法,返回该实例

 

publicclassStaticInnerClassSingleton{

privatestaticclassSingletonHolder{

privatestaticfinalStaticInnerClassSingletonINSTANCE=newStaticInnerClassSingleton()

privateStaticInnerClassSingleton(){}

publicstaticfinalStaticInnerClassSingletongetInstance(){

returnSingletonHolder.INSTANCE

 

五、枚举单例模式

1.将单例定义为枚举类型,利用枚举类天然的线程安全和简洁性

 

publicenumEnumSingleton{

INSTANCE

publicvoiddoSomething(){

/业务逻辑

 

通过以上几种实现单例模式的方法,您可以根据实际需求选择合适的方式。在实际编程中,要确保单例模式的安全性、效率和高可用性,以达到更好的应用效果。希望这篇文章能为您提供帮助,祝您编程愉快!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系站长举报,一经查实,本站将立刻删除。

相关文章

当前作者热点
猜你喜欢