[Android设计模式之旅]——单例模式

前言

单例模式应该是我们平时开发过程中最常用到的设计模式之一,它的核心结构中包含一个被称为单例的特殊类。通过单例模式能够保证程序中只有一个类只有一个实例。

定义

“单例模式是保证一个类只有一个实例,并且提供一个能够全局访问他的节点”————《设计模式》

单例模式的实现方式

1、饿汉模式

public class Singleton{
  private Singleton singleInstance = new Singleton();
  public Singleton getInstance(){
     return singleInstance;
  }

}

2、懒汉模式(线程不安全)

public class Singleton {
 private Singleton instance;

 public Singleton getInstance() {
  if (instance == null) {
   instance = new Singleton();
  }
  return instance;
 }
}

3、懒汉模式(线程安全)

public class Singleton {
 private Singleton instance;

 public Singleton getInstance() {
  synchronized (this) {
   if (null == instance) {
    instance = new Singleton();
   }
   return instance;
  }
 }
}

4、双重校验(DCL)

public class Singleton {
 private Singleton instance;

 public Singleton getInstance() {
  if (null == instance) {
   synchronized (Singleton.class) {
    if (null == instance) {
     instance = new Singleton();
    }
   }
  }
  return instance;
 }
}

5、枚举

enum Singleton {
 INSTANCE;
 public void methond(){
  System.out.println("This is Enum!");
 }
}

6、静态内部类

public class Singleton {
   private Singleton(){}
   private static class SignletonInstance(){
        private static final Singleton INSTANCE = new Singleton();
   }
   public Singleton getInstance(){
        return SingletonInstance.INSTANCE;
   }
}
发布了96 篇原创文章 · 获赞 235 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/u013132758/article/details/88225601