单例模式:
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
**
懒汉式
**
package com.lsf.shejimoshi;
//懒汉式单例模式:
// 可能存在多线程安全问题,如果第一个线程刚进入程序,
// 在new对象时,又进入一个线程,检测到还未创建对象,则会创建两个对象
public class Singleton {
//2.申明本类类型的引用指向本类类型的对象并使用private static关键字修饰
private static Singleton singleton = null;
//1、私有化构造方法使用private关键字修饰
private Singleton() {
}
//3.提供公有的get()方法将对象返回回去,使用public static关键字修饰
//使用synchronized保证线程安全
public static Singleton getSingleton() {
if (null == singleton) {
synchronized (Singleton.class) {
if (null == singleton) {
singleton = new Singleton();
}
}
}
return singleton;
}
}
饿汉式
//这种方式比较常用,但容易产生垃圾对象。
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton (){}
public static Singleton getInstance() {
return instance;
}
}