单例模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。

定义:单例模式保证一个类只有一个实例并提供一个全局访问点。

特点:

1、必须保证类只有一个实例

2、必须自己创建自己

3、只能提供唯一一个实例

步骤:

1、将类本身的构造函数私有化,使得外部不能通过new来进行实例化

2、提供一个存储该类实例化的private static变量

3、提供唯一一个对外公开的方法

代码实现:

1、恶汉模式

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

2、懒汉模式

public class Singleton{
  private static Singleton instance;
  private Singleton(){}
  public static Singleton getInstance(){
    return instance == null ? instance = new Singleton() : instance;
  } }

3、测试方法

public class Test{
  public static void main(String[] args){
    Singleton s1 = Singleton.getInstance();
    Singleton s2 = Singleton.getInstance();
    if(s1 == s2){
      System.out.println("s1和s2是同一个对象");
    }else{
      System.out.println("s1和s2不是同一个对象");
    }
  } }

 

以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

单例片段或保存网页视图状态

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式以及静态代码块