设计模式之一 :单例设计模式

本文详细介绍了单例设计模式的概念及其实现方式,包括饿汉式、懒汉式等不同实例化方法,并提供了具体的代码示例。

单例设计模式是比较简单的,它有三个要点:

一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。

单例设计模式 是对象创建型模式。

//单例模式最要关心的则是对象创建的次数以及何时被创建。
public class Singleton {
//方法一:饿汉式
private static class SingletonHolder {
     //单例对象
     static final Singleton instance = new Singleton();
}
public static Singleton getInstance(){
     return SingletonHolder.instance;
}
//方法二 不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率
private static Singleton instance = null;
private Singleton() {
     //do something
}
public static Singleton getInstance() {
 if (instance==null) {
     instance = new Singleton();
  }
    return instance;
}
//方法三  在自己内部定义自己的一个实例,只供内部调用
private static Singleton instance = new Singleton();
private Singleton(){
   //do something
  }
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance(){
       return instance;
}
//方法四   双重锁的形式 
//这个模式将同步内容下方到if内部,提高了执行的效率,不必每次获取对象时都进行同步,只有第一次才同步,创建了以后就没必要了

private volatile  static  Singleton  instance = null;
protected  Singleton() { }
public static Singleton getInstance(){
       if(instance==null){
           synchronized (Singleton.class) {
               if(null == instance){
                   instance = new Singleton();
           }
      }
   }
   return instance;
   }
}
二.在别的类里如何使用:   Singleton.getInstance.(这里是你要调用的方法);

也可参考:http://www.itjhwd.com/javaxianchengdanli/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值