1.单例模式
1.单:一个
2.例:实例,对象
3.目的:为了让一个类只产生一个对象供外界使用
1.1.饿汉式:
java
public class Singleton {
/**
* 为了不让外界随意new对象
* 我们需要将构造私有
*/
private Singleton(){
}
/*
由于是饿汉式,迫不及待的让这个对象new出来,所以我们new对象的时候,将其变成静态的
而且,单例模式,自己new出来的对象,不能让外界随意直接调用,所以将对象private
*/
private static Singleton singleton = new Singleton();
// 在本类中定义一个方法,将内部的对象给外界
public static Singleton getSingleton(){
return singleton;
}
}
1.2.懒汉式:
java
public class Singleton1 {
/**
* 为了不让外界随意new对象
* 我们需要将构造私有
*/
private Singleton1() {
}
/*
由于是懒汉式,不着急new对象,啥时候想用,啥时候new
而且,单例模式,自己的对象,不能让外界随意直接调用,所以将对象private
*/
private static Singleton1 singleton = null;
/*
在本类中定义一个方法,将内部的对象给外界
*/
public static Singleton1 getSingleton() {
/*
外层判断,是决定要不要抢锁
*/
if (singleton==null){
synchronized (Singleton1.class){
/*
内层判断,是决定要不要new对象
*/
if (singleton == null) {
singleton = new Singleton1();
}
}
}
return singleton;
}
}