[Android设计模式之旅]——单例模式-鸿蒙开发者社区-51CTO.COM

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

棉花糖
发布于 2020-9-23 11:34
浏览
0收藏

前言


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

 

定义

 

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

 

单例模式的实现方式

 

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;
   }
}

 

 

作者:紫雾凌寒

来源:CSDN

分类
收藏
回复
举报
回复
    相关推荐