本文介绍: 单例模式就是保证运行过程中某个类的实例对象只有一个,例如在 JavaWeb 程序中,service 层的对象其实主要就是提供服务,全局获取一个对象足矣,一般情况下不需要重复定义对象。但是我最初学习的时候也是,在每个 controller 中 new service 层的对象实例,这样会造成资源的浪费;单例模式属于创造型模式,用于实例化对象。(1)私有化构造器:使得该类只能在内部实例化,外部不能实例化;(2)保证内部能实例化出一个对象,并且仅实例化一次;(3)考虑线程安全,需要注意加锁;
1 什么是单例模式?
单例模式就是保证运行过程中某个类的实例对象只有一个,例如在 JavaWeb 程序中,service 层的对象其实主要就是提供服务,全局获取一个对象足矣,一般情况下不需要重复定义对象。但是我最初学习的时候也是,在每个 controller 中 new service 层的对象实例,这样会造成资源的浪费;
单例模式属于创造型模式,用于实例化对象。
2 几种单例模式的实现
单例模式的实现有好几种,甚至有大佬列举了 8 种,详细情况如下:
java单例模式——详解JAVA单例模式及8种实现方式_单例模式总结-CSDN博客
2.1 饿汉单例(线程安全)
2.2 饿汉单例(线程不安全)
当多个线程同时访问可能会进入 if 语句,造成实例化多个实例;
2.3 懒汉单例(锁方法)
2.4 懒汉单例(双重检查)
3 总结
3.1 单例模式的关键
3.2 volatile 关键字
3.3 单例模式在 Spring 中的应用
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。