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
}
}