Java设计模式_单例设计模式

翻译 2017年02月28日 20:40:20
/**
 * 单例设计模式:饿汉式,不适用于多线程,效率低
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态 final
    private static final SingleTest instance = new SingleTest();
    private static SingleTest getInstance(){
        return instance;

}

}

/**
 * 单例设计模式:饱汉式,非线程安全
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰)
    private static  SingleTest instance ;
    private static SingleTest getInstance(){
        if(instance==null)
            instance = new SingleTest();
        return instance;
    }
}
/**
 * 单例设计模式:饱汉式,线程安全,效率不高
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰)
    private static  SingleTest instance ;
    private static synchronized SingleTest getInstance(){
        if(instance==null)
            instance = new SingleTest();
        return instance;
    }
}

/**
 * 单例设计模式:饱汉式,最优解
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰,使用volatile保证了线程访问时instance变量的可见性,
    // 避免了instance初始化时其他属性还没赋值完时被另外的线程调用)
    private static  volatile  SingleTest instance ;
    private static  SingleTest getInstance(){
        // 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率)
        if(instance==null)
        {
            //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
            synchronized (SingleTest.class)
            {
                //未初始化,则初始instance变量
                if(instance==null)
                    instance = new SingleTest();
            }
        }
        return instance;
    }
}


Java四种单例设计模式

Java中的四种单例模式单例模式是最容易理解的设计模式之一,介绍Java中单例模式的四种写法。1.饿汉式单例模式public class Singleton{ private static S...
  • twocold_2010
  • twocold_2010
  • 2016年11月20日 15:13
  • 292

Java设计模式之一 单例设计模式

设计模式: 设计模式的概念首先来源于其它行业:建筑业,在早起建房子的时候,肯定是经验缺乏、显得杂乱无序的,这就会造成很多问题,在行业发展过程,通过不断的经验积累,前辈们针对这些问题提出了合理解决方案...
  • qq_32736689
  • qq_32736689
  • 2016年04月07日 08:29
  • 2292

Java设计模式(十) 你真的用对单例模式了吗?

本文介绍了为何需要单例模式,单例模式的设计要点,饿汉和懒汉的区别,并通过实例介绍了实现单例模式的九种实现方式及其优缺点。...
  • Habren
  • Habren
  • 2016年05月16日 08:20
  • 786

C++设计模式[二]单例模式

接着就是单例模式;个人理解就是把创建方法改为私有,然后再内部实例化,禁止外部创建对象。 何为单例模式,在GOF的《设计模式:可复用面向对象软件的基础》中是这样说的:保证一个类只有一个实例,并提供一个...
  • langb2014
  • langb2014
  • 2015年11月03日 16:11
  • 1084

设计模式——单例模式的几种实现方式

1.饿汉式:静态常量 这种方法非常的简单,因为单例的实例被声明成static和final变量了,在第一次加载类到内存中时就会初始化,所以会创建实例本身是线程安全的。public class Singl...
  • bingogirl
  • bingogirl
  • 2016年09月01日 00:03
  • 1287

java中单例设计模式,基本思想和目的。

//懒汉式 public class test{ public static void main(String[] args){  Singleton.getInstence().desc();...
  • hs2201056
  • hs2201056
  • 2017年03月08日 21:26
  • 263

单例设计模式的作用及用途

单例类的作用:让一个类只能创建一个实例(因为频繁的创建对象,回收对象会造成系统性能下降。)。解决对象的唯一性,保证了内存中一个对象是唯一的 。 使用单例类条件:当前对象的创建比较消耗资源,我们在...
  • mearer
  • mearer
  • 2013年12月02日 21:23
  • 1060

java设计模式之单例模式5种方法及优缺点小结

单例设计模式的用处。单例设计模式是指,某个类只有一个实例。在计算机系统中类似于打印机和最常见的就是任务管理器的对话框,不管几个用户同时登录windows 打开的任务对话框只有一个。常见的几种实现方式:...
  • gwbbigbang
  • gwbbigbang
  • 2017年06月04日 18:27
  • 262

java设计模式之五 —— 单例模式的三种模式优缺点整理

本来一直以为单例很简单,不打算整理了。不过本着求学需严谨的心态,还是去看了一下。确实有所收获。单例模式:单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供...
  • a1961613299
  • a1961613299
  • 2015年08月14日 18:01
  • 1391

设计模式之——单例模式(Singleton)的实现、优缺点和常见应用场景

一.单例模式的三种实现 以及各自的优缺点 转载自http://my.oschina.net/suyewanwan/blog/102525 单例模式:单例模式的意思就是只有一个实例。单例模式确保某...
  • qq_30465427
  • qq_30465427
  • 2015年08月09日 15:36
  • 1210
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java设计模式_单例设计模式
举报原因:
原因补充:

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