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 单例设计模式

  • 2014年10月07日 11:08
  • 126KB
  • 下载

java单例设计模式

  • 2015年04月22日 21:10
  • 73KB
  • 下载

Java设计模式透析之 —— 单例(Singleton)

转自郭霖大神的博客:http://blog.csdn.net/guolin_blog/article/details/8860649 写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问...

java单例设计模式的好处

  • 2013年04月19日 14:59
  • 140KB
  • 下载

Java的单例设计模式

  • 2015年12月29日 21:57
  • 5KB
  • 下载

黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)

------- android培训、java培训、期待与您交流! ----------   一、面向对象(static关键字) static:用于修饰成员(成员变量,成员函数) 当成员被静态关键字...

java单例设计模式

  • 2016年07月31日 22:32
  • 20KB
  • 下载

java中单例设计模式分析

单例设计模式分为两种:懒汉式和饿汉式 单例设计模式构成: 1、私有的静态的成员变量类本身的对象 2、私有的构造方法 3、公有的静态的获得该类创建出来的对象 // 懒汉式 class Singleto...

黑马程序员——Java基础——单例设计模式及扩展

单例设计模式是23种设计模式中一种比较简单的模式,定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 为什么要有这种设计模式? 正常的类可以创建千千万万个对象,就像人有无数个一样...

Java开发中的23种设计模式--单例

在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java设计模式_单例设计模式
举报原因:
原因补充:

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