单例模式
单例模式是23种常见的设计模式之一。
单例模式就是保证整个项目中某个类创建的对象只有一个。
单例模式实现模式常见的有 饿汉式 懒汉式
饿汉式
饿汉式,只要第一次使用到类,就会产生一个对象,降低加载效率,线程安全的
饿汉式单例模式 static修饰的变量是静态变量,在类首次加载时加载,类只加载一次 不希望外面可以直接拿到,而且在拿到对象之前可能需要一些初始化工作
public class TaskManager {
private static TaskManager taskManager = new TaskManager();
//不允许类外创建,否则就会出现多个对象
private TaskManager() {
System.out.println("执行无参构造");
}
//获取实例对象
public static TaskManager getInstance() {
return taskManager;
}
public static void method() {
System.out.println("This is a static method from TaskManager");
}
}
饿汉模式(lazy load
public class PoolManager {
//懒汉式
//私有构造方法
private PoolManager() {
}
private static PoolManager poolManager;
//提供一个方法,当方法做完一些操作之后在返回
//明确要使用对象时,再返回对象
public static PoolManager getInstance() {
if (poolManager == null) {
poolManager = new PoolManager();
}
return poolManager;
}
}
总体来说
饿汉模式 线程安全但会降低加载效率。
懒汉模式 线程不安全但节省加载时间。
枚举类也是单例模式
public enum Season {
SUMMER;
}