面向对象-单线程场景单例设计模式实战案例
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.单例设计模式介绍
1>.设计模式概述
就是解决某类问题最行之有效的解决方案,设计模式是一种思想。
Java里面也有设计模式,目前有23种设计模式,单例设计模式就是其中一种。
2>.单例设计模式
单例设计模式解决的问题:
保证一个类在内存种只有一个对象,换句话说,就是保证一个类在内存种的对象唯一性。
3>.单例设计模式应用场景
比如配置文件,A程序要使用配置文件对象,B程序也要使用配置文件对象,希望A程序对配置文件数据修改后,B程序可以直接使用,那么就需要A程序和B程序使用同一个对象。
4>.如何保证一个类在内存种的对象唯一性呢?
(1)在本类种自定义一个本类对象
(2)对外提供获取该对象的方式即可
5>.代码具体实现
(1)私有化构造函数;
(2)创建一个私有并且静态的本类的对象;
(3)创建一个公共的static方法返回该对象;
二.通过饿汉式(类加载的时候就创建对象)实现单例设计模式[工作常用]
/** * 饿汉式单例模式 * @author 尹正杰 * */ public class Single { //(1)私有化构造函数; private Single() {} //(2)创建一个私有并且静态的本类的对象; private static Single s = new Single(); //(3)创建一个公共的static方法返回该对象; public static Single getInstance() { return s; } }
三.通过懒汉式(真正使用的时候才会创建对象)实现单例实际模式[面试常问]
/** * 懒汉式单例模式 * @author 尹正杰 * */ public class Single { //(1)私有化构造函数; private Single() {} //(2)创建一个私有并且静态的本类的对象; private static Single s = null; //(3)创建一个公共的static方法返回该对象; public static Single getInstance() { if (s == null) { s = new Single(); } return s; } }