美文网首页
设计模式一分钟之Singleton

设计模式一分钟之Singleton

作者: 小强聊架构 | 来源:发表于2018-04-04 14:36 被阅读0次


使用场景:

单例模式,保证在java中,一个类class只有一个实例存在。

单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”

为什么要使用:

对于系统中某些class,只有一个实例很重要。比如Windows系统的任务管理器,打印机的任务调度程序,同时,可以节约内存使用。

使用方法:

有三种形式:

1. Common initialzation

public class Singleton {

  private Singleton(){}

  //注意这是private 只供内部调用

  private static Singleton instance = new Singleton();

  //这里提供了一个供外部访问本class的静态方法,可以直接访问

  public static Singleton getInstance() {

    return instance;

   }

}

2.lazy initialization

public class Singleton {

  private static Singleton instance = null;

      //此处,synchronized 很重要。

  public static synchronized Singleton getInstance() {

  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率,但是没有第一种形式安全。

  if (instance==null)

    instance=new Singleton();

  return instance;

    }

}

3. double-check+synchronized

public class Singleton{

    private static volatile Singleton instance=null;

    private Singleton(){

        //do something

    }

    public static  Singleton getInstance(){

      //双重判断+同步块的方法,可以大大提高效率。

        if(instance==null){

            //将同步块放到方法的内部,提高了执行效率

            synchronized(Singleton.class){

                if(instance==null){

                    instance=new Singleton();

                }

            }

        }

        return instance;

     }

}


作者微信公众号 "小强聊架构"。

相关文章

  • 我是独一无二的『单例模式』

    目录:设计模式之小试牛刀源码路径:Github-Design Pattern 定义:(Singleton Patt...

  • 前端面试题整理

    1、设计模式 知道什么是singleton, factory, strategy, decrator么? 设计模式...

  • 设计模式分类

    经典23种设计模式: 创建型设计模式: Singleton Pattern(单例模式) PrototypePatt...

  • 设计模式之单体模式 singleton

    什么是单体模式 在面向对象编程中,我们有时候需要只有一个对象或者实例,如注册表,线程池等。俗话说“一山不容二虎”,...

  • 图解设计模式之Singleton模式

    Singleton模式即单例模式,故名思意,单例模式会确保任何情况下都绝对只有一个实例,当我们想在程序中表示某个东...

  • 设计模式之——Singleton pattern

    单例模式网址 Singleton pattern - wikipedia 单例模式定义 在一个系统中,一个类只有一...

  • iOS设计模式之Singleton

    Singleton 单例设计模式 单例设计模式确保对于一个给定的类只有一个实例存在,这个实例有一个全局唯一的访问点...

  • 架构师学习路线图

    内功心法 设计模式 软件设计原则 软件设计模式创建型模式Factory 工厂模式Singleton 单例模式Pro...

  • JAVA设计模式 - 单例模式

    JAVA设计模式 - 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一...

  • 设计模式一分钟之Singleton

    使用场景: 单例模式,保证在java中,一个类class只有一个实例存在。 单例模式最初的定义出现于《设计模式》(...

网友评论

      本文标题:设计模式一分钟之Singleton

      本文链接:https://www.haomeiwen.com/subject/idodfftx.html