设计模式之单例模式

Scroll Down

1. 模式介绍

单例模式,是一种常用的软件设计模式,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。

  • 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
  • 在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。
  • 定义一个静态方法返回这个唯一对象。

1. 单例模式之饿汉式

饿汉式个人理解就是直接创建好了,就像一个老头早就准备好了吃的,饿了就吃

package com.company.Test;
public class Dog {
    // 构造方法私有化
    private Dog(){ }
    //实例化对象设置为一个属性,并用static修饰
    private static Dog dog = new Dog();
    public static Dog getDog(){
        return dog;
    }
}
===================================================================
package com.company.Test;

public class Test {
    public static void main(String[] args) {
        Dog dog1 = Dog.getDog();
        Dog dog2 = Dog.getDog();
        System.out.println(dog1==dog2);//true
    }
}

2. 单例模式之懒汉模式

懒汉式个人理解就是用的时候才创建,就像一个老头饿了才会去找吃的

package com.company.Test;
public class Dog {
    // 构造方法私有化
    private Dog(){ }
    //实例化对象设置为一个属性,并用static修饰
    private static Dog dog = null;
    public static Dog getDog(){
        if (dog == null){
            dog = new Dog();
        }
        return dog;
    }
}
===================================================================
package com.company.Test;
public class Test {
    public static void main(String[] args) {
        Dog dog1 = Dog.getDog();
        Dog dog2 = Dog.getDog();
        System.out.println(dog1==dog2);//true
    }
}