单态模式(SingletonPattern)

原创 2016年08月29日 22:10:47

单态模式:

确保一个类只有一个实例,并提供一个全局访问点


毫无疑问,单态模式是java编程过程中最常见也是最常用的模式;其核心就是一个类整个生命周期中就只有一个实例,无论是单线程还是多线程都是只有一个;
SingletonPattern


在实现方式上有两种:饥汉和饱汉(其实就是初始化的先后顺序):
饥汉式:

public class SingletonOther {
    private static SingletonOther instance;

    private SingletonOther() {
    }

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

饱汉式:

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

    private Singleton() {
    }

    public Singleton getInstance()
    {
        return instance;
    }

}

然而,在多线程情况下饥汉实例化过程中,由于CPU时钟轮训工作时那就有可能出现多个实例;在这个时候我们可以通过加锁进保证整个创建得过程的唯一性:

public class SingletonPro {
    private volatile static SingletonPro instance;

    private SingletonPro(){
    }

    public SingletonPro getInstance()
    {
        if(instance == null){
            synchronized (Singleton.class) {
                if(instance == null){
                    instance = new SingletonPro();
                }
            }
        }
        return instance;
    }
}
版权声明:本文为博主原创文章,转载请声明来源地址,并通知博主本人,谢谢。

相关文章推荐

JAVA设计模式---单态模式理解

前言何为单态模式? 在一个系统中,JVM中,只能存在有一个对象的实例,所有程序的处理都只能调用这一个对象完成相关逻辑操作,单态模式有点在于减少了new关键字的调用,实例的初始化,节省了系统内存开销。...

Java设计模式之策略模式

本文属于23种设计模式系列。 介绍的是策略模式。

单例模式SingletonPattern

单例模式使用的前提: 单例模式简单易用,但是也是所有设计模式中最容易滥用的模式。当你的类想得到很好的扩展时,不能使用单例模式 作用: 首先要说明的是,在一些情况下使用单例模式是可以达到节省资...

Java实现多种单例模式SingletonPattern

纠结了好久,要不要写一篇博客记录自己学习单例模式的过程。网上相关博客多的很,好像没什么必要重复造一个老轮子。 但是最近面试、看面试书,发现单例模式还是经常会被考到的,而且作为设计模式中相对来说比较简...

DesignPattern_Java:SingletonPattern

单例模式 SingletonPattern Ensure a class has only one instance,and provide a global point of access to ...

singletonPattern

  • 2008年01月22日 16:01
  • 8KB
  • 下载

.Net单态模式的案例

  • 2011年09月29日 12:25
  • 104KB
  • 下载

单态设计模式

所谓类的单态设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 如果要让类在一个虚拟机中只能产生一个对象,首先必须将类的...
  • a287971
  • a287971
  • 2012年06月18日 23:53
  • 635

单态模式(代码)

  • 2008年07月07日 19:24
  • 5KB
  • 下载

Net单态模式的案例

  • 2011年11月08日 20:45
  • 131KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单态模式(SingletonPattern)
举报原因:
原因补充:

(最多只允许输入30个字)