单例模式——不必多记,只记所需

单例模式详解
本文介绍了五种常见的单例模式实现方式:懒汉式、饿汉式、静态内部类、枚举类及双重校验锁,并重点推荐使用静态内部类和枚举类这两种方式。文章通过代码示例详细解释了每种方法的工作原理。

常规的单例模式大致有一下几种:
  • 懒汉式:第一次访问单例类的实例才创建
  • 饿汉式:利用classloder机制避免多线程同步问题,在类加载的时候就进行实例化
  • 静态内部类:利用classloder机制避免多线程同步问题,等到第一次要访问单例类实例的时候才会创建。(吸收了懒汉和饿汉的优点)
  • 枚举类:JDK1.5之后提供了枚举类,避免多线程同步问题,支持序列化机制,防止多次产生对象。
  • 双重校验锁:利用synchronized来实现,进入方法后先检查实例是否存在,不存在再进入同步块再判断。(可以参考网上)

在实际开发中,强烈推荐使用后两种,其他的进行比较和理解就可以了。

静态内部类代码实现

 public class Singleton {  
 private static class SingletonHolder {  
     private static final Singleton instance= new Singleton();  
 }  
 private Singleton (){}
 public static final Singleton getInstance() {  
    return SingletonHolder.instance;  
}  
}

枚举类代码实现

public enum Singleton {
   //定义一个枚举的元素,它就代表了Singleton的一个实例
   uniqueInstance;
   //行为方法
   public void singletonOperation(){
        //功能处理
   }
}

上述知识部分学习于网上网友,总结吸收。不必多记,只记所需。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值