美文网首页Java 杂谈javaJava
java设计模式-单例模式(singleton)

java设计模式-单例模式(singleton)

作者: yiqiquhuxi | 来源:发表于2019-07-03 16:48 被阅读38次

单例模式(singleton),属于创建型模式

单例模式实现方法有很多种,今天要讲的是其中两种,也是最简单,最常见的两种,饿汉模式和懒汉模式。

单例模式,顾名思义,在整个系统中,该对象只有一个实例,其特性和我们类中static修饰的变量差不多,不论多少线程操作该变量,该变量线程共享,实例只有一份。有人会问,那直接用static不就行了,干嘛还要用单例模式呢,因为static修饰的只是变量,而我们要操作的是对象,java抽象出来的对象。单例原则:

1:保证对象构造方法属于私有,不对外开放。
2:通过一个静态方法或者枚举返回单例类对象的唯一实例。
3:确保单例类的对象有且只有一个,尤其是多线程的环境下。
4:确保单例类对象在反序列化时不会重新构建对象



饿汉模式(对象先创建出来,我饿我先吃为敬)


饿汉模式



懒汉模式(需要时候我在动,需要时候我在创建对象)

懒汉模式

注意点:

        饿汉模式属于线程安全,多线程情况下,我对象是先创建好的,不论谁来调用, 我给它提前创建好的对象,保证线程安全。
        懒汉模式属于线程非安全,因为有if判断,如果有线程正在做if判断时候,另外线程正好也进来if,而第一个线程并没有执行完毕。这时候会返回两个新的对象,有违背了单例模式的原则。

应用场景:
1:电脑的资源管理器,不论点几下,只会有一个窗口弹出来。
2:电脑的回收站。
3:网站的计数器。
4:数据库连接池,为避免频繁打开和关闭数据库。

JDK使用实例:
java.lang.Runtime#getRuntime()
java.awt.Desktop#getDesktop()
java.lang.System#getSecurityManager()

相关文章

  • JAVA设计模式 - 单例模式

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

  • 设计模式——单例模式

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

  • 单例模式

    3、单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象...

  • 设计模式

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

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

    单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保...

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

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

  • 设计模式之单例模式详解(附源代码)

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

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

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

  • 单例模式

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

  • Java基础一一设计模式:单例模式的运用

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

网友评论

    本文标题:java设计模式-单例模式(singleton)

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