java单例模式的整理

来源:互联网 发布:sql查询数据库的大小 编辑:程序博客网 时间:2024/06/05 09:49

单例模式是开发中常用的模式,同时也是面试中设计模式里出现最频繁的一个。最近找工作梳理知识点,将自己的理解整理如下,如有错误愿虚心请教~

首先单例模式的目的就是系统中某个组件可能只需要一个,并且仅需要一个,如果这种组件出现多个的话可能造成系统的混乱,那么这时就需要一个单例来保证“单例”只会有一个。

单例模式:确保一个类只有一个实例,并提供一个全局的访问点。【head first】

下面介绍几种单例的设计方式:

1,“急切”的创建实例


这种方式就是直接在类初始化的时候就将单例对象进行实例化,需要获取单例对象的都需要调用getInstance()方法。这就要求这样的单例对象不会占用太对的系统空间,并且系统空间允许这样的对象在一开始就进行实例化。但这个方式有一个明显的缺点就是:java中经常遇到序列化和反序列化,如果单纯使用这个Singleton会造成反序列化的时候产生多个单例对象。所以需要对这个方法进行优化。


2,“急切”的创建实例-优化01

这样的代码实现就可以避免1中出现的序列化的问题。同样的在Effective Java中也有提到过jdk 1.5中的枚举类已经提供了序列化机制,绝对防止多次实例化。

这是实现单例模式最优的方式


3,同时实现单例模式还有慢实例化,代码如下,这种方式应注意线程安全。



0 0
原创粉丝点击