目录
一、单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。
1.意图
确保一个类只有一个实例,并提供一个全局访问点来访问该实例。
2.主要解决
频繁创建和销毁全局使用的类实例的问题。
3.何时使用
当需要控制实例数目,节省系统资源时。
1、懒汉式
//懒汉式的单例模式!!!
public class Student {
//3.声明studen对象
private static Student stu = null;
//1.私有化构造方法
private Student () {
}
//2.搞一个静态的方法让外部调用,静态方法中通过条件判断去new
public static Student getInstance() {
if (stu == null) {
stu = new Student();
}
return stu;
}
}
以上线程不安全:
//懒汉式的单例模式!!!
public class Student {
//3.声明studen对象
private static Student stu = null;
//1.私有化构造方法
private Student () {
}
//2.搞一个静态的方法让外部调用,静态方法中通过条件判断去new
public static synchronized Student getInstance() {
//synchronized (Student.class) {
if (stu == null) {
stu = new Student();
}
//}
return stu;
}
}
2、饿汉式
//饿汉式写法
public class Teacher {
private static final Teacher tea = new Teacher();
private Teacher() {}
public static Teacher getInstance() {
return tea;
}
}