浅谈单例模式的几种写法
来源:互联网 发布:泰达网络登录 编辑:程序博客网 时间:2024/06/05 05:51
概述:随着jdk的版本的发展,单例模式的写法也随之增加并逐渐完善。博主从接触java就听到单例模式,闲来无事喜欢看杂七杂八的文章,今天看到枚举单例,突发感想记录下来。总结之,目前单例模式有三种写法。
一、最原始的单例模式写法
归纳起来三个步骤,静态方法、私有构造器、静态常量
public class A {private static final A instance = new A();private A(){}public static A getInstance(){return instance;}}
如此单例模式就设计出来,如果考虑到线程安全的问题,getInstance可以如下写法
public static synchronized A getInstance(){return instance;}第一种写法在序列化、反序列化上会产生多个对象,如此就违背了单例思想
二、改进的单例模式写法
public class B {private static final B instance = new B();private B(){}public static B getInstance(){return instance;}public Object readResolve(){return instance;}}
添加readResolve()方法,防止序列化的时候出现多个实例
三、枚举单例模式
枚举单例写法需要jdk的配合,jdk1.5之后才可以这种写法
public enum TestSingleton {INSTANCE;TestSingleton(){}}这种写法既简洁,又能防止序列化出现多个实例。为三种方法中,博主最推荐的单例模式写法。
至于此种写法的序列化会不会出现多个实例的测试代码,博主就不写了,通过写入、读取的方式可以验证序列化前后的两个实例是同一个,相信大家可以自己写出这样的验证代码。
此文借鉴《effective java》
此文借鉴《effective java》
0 0
- 浅谈单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式、的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法
- 单例模式的几种写法(包含双检锁写法)
- 单例模式的几种写法(包含双检锁写法)
- [转] ioctl的命令cmd构造详解
- xml 中画圆角矩形、虚线、实线
- MFC中ListControl控件的使用
- IntelliJ IDEA 12创建Maven管理的Java Web项目(图解)
- 数据库设计原则
- 浅谈单例模式的几种写法
- BZOJ2788/POI2012 Festival
- python实现12306查询火车票
- iOS友盟第三方登陆开发
- 中国省市县(区)json数据下载
- JS组件系列——Bootstrap 树行控件使用经验分享
- shell获取进程ID
- STM32 定时器用于外部脉冲计数
- Three Ways to Inject Your Code into Another Process