Java设计模式_单例模式

作者: Miss_差不多 | 来源:发表于2017-09-22 10:28 被阅读46次

概念

  • java中单例模式是一种常见的设计模式,单例模式的写法有好几种.这里主要介绍:懒汉式 饿汉式.
单例模式有以下特点:
  • 单例类必须只能有一个实例.
  • 单例类必须自己创建自己的唯一实例.
  • 单例类必须给所有其他对象提供这一实例.
单例的好处
  • 当一个对象在程序内部只能有一个实例的时候,它可以保证我们不会重复创建,而是始终指向同一个对象.
  • 对象的盛名周期是整个项目运行期间.
//单例
public class Test1 {
    public static void main(String[] args) {
        Person p = Person.getInstance(); 
        Person p1 = Person.getInstance();
        
        }
}
//d单例:在程序在运行期间不管通过什么途径,执行创建一个对象
//对象的生命周期是整个项目运行期间

class Person{//饿汉式单例模式
    //static
    static Person person = new Person();
     static Person getInstance(){//静态工厂的方法
         return person;
     }
}

class Student {//懒汉式单例模型
    
    //volatile每个线程都有自己的栈
volatile  static Student stu = null;
 static Student getInstance(){
     synchronized (Student.class) {
         if (stu == null) {
                stu = new Student();
            }
    }
    
     return stu;
 }  
}

在上述代码中Person类是一开始就创建了空间,属于饿汉式单例模式.

  • 优点:在类加载初期就创建对象,调用getInstance的时候,没有同步方法,运行时性能较高.
  • 缺点:类加载速度慢,占用太多的资源空间.
    而Student是在用的时候创建空间,属于懒汉式单例模型
  • 优点: 避免了第一种方法的缺点,同时,可以在多线程下运行安全.
  • 缺点:因为使用了锁,在运行中效率慢.
    volatile关键字是起到双重保障的作用.

相关文章

  • 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 中最简单的设计模式之一,这种类型...

  • 设计模式

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

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

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

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

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

网友评论

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

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