如果一个类,始终只能创建一个实例,则该类被称为单例类,这种模式被称为单例模式
单例在内存中始终只有一份,所以不是线程安全的。
单例又分饿汉型和懒汉型。
饿汉型单例如下:
这种类型在创建类时已经创建了该类的实例
懒汉型单例如下:
这种类型只有在显示调用getInstance方法之后才会创建一个实例
单例在内存中始终只有一份,所以不是线程安全的。
单例又分饿汉型和懒汉型。
饿汉型单例如下:
package com.yf.designpattern.singleton;
/*
* 饿汉式单例
*/
public class Singleton1 {
private static Singleton1 singleton1 = new Singleton1();
private Singleton1() {
}
public static Singleton1 getInstance() {
return singleton1;
}
}
这种类型在创建类时已经创建了该类的实例
懒汉型单例如下:
package com.yf.designpattern.singleton;
/*
* 懒汉式
*/
public class Singleton2 {
private Singleton2() {
}
public static Singleton2 getInstance() {
return new Singleton2();
}
}
这种类型只有在显示调用getInstance方法之后才会创建一个实例