单件模式

作者: dd85bd3cabef | 来源:发表于2017-05-17 14:10 被阅读3次

很多对象其实只要一个,比如线程池,缓存,对话框,注册表等。

经典的单件模式##

代码:

public class Singleton {
    private static Singleton uniqueInstance;
    public static Singleton getInstance(){
        if(uniqueInstance==null){
            uniqueInstance = new Singleton();
        }
        return uniqueInstance;
    }
}

这里实现了延迟实例化。

多线程保护##

多线程编程的时候,可能会出现初始化多个不同的instance实例的情况。
这时候,只需要让getInstance设置成同步的就可以了
public static synchronized Singleton getInstance(){
}
但是这样会拖累系统

  • 如果应用对于这个拖累无所谓,那么就这么写吧。
  • 如果频繁使用实例,并且很急切,那么就在静态初始化器中创建单件
    private static Singleton uniqueInstance = newSingleton();
  • 使用双重检查锁
private volatile static Singleton uniqueInstance();
   ...
   public static Singleton getInstance(){
if(uniqueInstance==null){
synchronized{
(singleton.class);
}
}

这两种做法都是线程安全的。

相关文章

  • 单例模式之饿汉、懒汉

    一、单件模式用途: 单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。单件模式能够保证某...

  • 单例设计模式

    1. 单例模式,也加单件模式单件模式。 Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整...

  • 设计模式- 单例模式(Singleton Pattern)

    定义(单例模式又称单件模式) 单件模式(Singleton Pattern)要求一个类有且仅有一个实例,并且提供了...

  • 单件模式

    很多对象其实只要一个,比如线程池,缓存,对话框,注册表等。 经典的单件模式## 代码: 这里实现了延迟实例化。 多...

  • 【设计模式】单件模式

    设计模式:单件模式 定义:单件模式确保一个类只有一个实例,并提供了一个全局访问。 要点 单件模式确保程序中一个类最...

  • PHP设计模式-单例模式

    单例模式(Singleton Pattern 单件模式或单元素模式) 单例模式确保某个类只有一个实例,而且自行实例...

  • 单例模式(懒汉模式--饿汉模式)

    1、饿汉式:在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。2、懒汉式:当程序第一次访问单件模式实例...

  • PHP程序员学习设计模式之单件模式(Singleton Patt

    单件模式(Singleton Pattern) 单件模式可能是最著名的设计模式之一。你也许会遇到许多这样的情形,你...

  • 设计模式之单例模式

    设计模式之单例模式 1. 模式定义 单例模式又称为单件模式或单态模式,属于创建者模式。它确保某一个类只有一个实例,...

  • 聊聊并发1:单例模式

    0.单例模式用途 单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。单件模式能够保证某一...

网友评论

    本文标题:单件模式

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