美文网首页
Java设计模式-单例设计模式

Java设计模式-单例设计模式

作者: 怪咖大蜀 | 来源:发表于2018-07-27 10:44 被阅读0次

大家好,今天我们开始一起来了解设计模式,单例设计模式是我们在开发当中经常使用到的一个设计模式,如果你现在还不能快速手写出这个设计模式,那你现在真的要努力了。如果我们想让一个类在只能存在一个实例,不能存在多个实例。就可以使用我们这个单例设计模式了。单例设计模式主要实现方式有两种,第一种为饿汉式,其主要特点为,在类加载的时候,它所对应的实例对象就已经被创建完成了。第二种为懒汉式,因为它比较懒,所以只有当你请求获取它的实例的时候,它的实例才会被创建出来。好了,下面我们来看一下,这两个实现方式的例子:

饿汉式
public class Test {
    /**私有化构造函数,保证在正常情况下,其他人不能在其他地方new出该类的实例对象*/
    private Test(){}
    private static Test  test =  new Test();
    //getInstance()方法提供外部访问获取对象实例
    public static Test getInstance(){
          return test;
    }
}
懒汉式
public class Text {
    /**私有化构造函数,保证在正常情况下,其他人不能在其他地方new出该类的实例对象*/
    private Test(){}
    private static Test  test;
    //getInstance()方法提供外部访问获取对象实例
    public static Test getInstance(){
      //为了避免每次获取时同步机制的效率问题。进行一次判断。
        if(test == null){
        //同步锁避免多线程并发请求时,new出多个对象。出现错误。
            synchronized (Text.class){
                if(test == null){
                    test = new Test();
                }
            }
        }
        return test;
    }
}

好了通过上面两个例子,你已经了解单利设计模式中最基本的两个写法了。也是最经常被使用的两个写法,你有没有写小激动呢。这篇文章就先到这里吧,如果你还想了解更多的设计模式,可以关注我的简书,我会和大家一起了解更多的设计模式。
转载请请注明出处:https://www.jianshu.com/p/59bd39503c3e

相关文章

  • JAVA设计模式 - 单例模式

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

  • 单例模式

    JAVA设计模式之单例模式 十种常用的设计模式 概念: java中单例模式是一种常见的设计模式,单例模式的写法...

  • Java中单例模式你用的哪一种?

    一起讨论java中的单例模式。单例模式是java设计模式中算是最简单的设计模式了。 * java实现单例模式的写法...

  • 设计模式

    Java 设计模式情景分析 ——单例模式 Java 设计模式情景分析——建造者模式 Java 设计模式情景分析——...

  • JAVA设计模式之单例模式

    JAVA设计模式之单例模式

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • 设计模式——单例模式

    设计模式——单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,这种类型...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • 设计模式

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式...

  • 设计模式《一》单例模式

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属...

网友评论

      本文标题:Java设计模式-单例设计模式

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