如何实现和应用单例模式的设计模式学习笔记(四)?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2801个文字,预计阅读时间需要12分钟。
单例模式是Java中最简单的设计模式,也是技术面试中频率极高的题目。它不仅涉及到设计模式,还包括线程安全、内存模型、类加载等机制。以下将从单字出发,分别阐述。
单例模式可以说是Java中最简单的设计模式,也是技术面试中频率极高的面试题。因为它不仅涉及到设计模式,还包括了关于线程安全、内存模型、类加载等机制。所以下面就来分别从单例模式的实现方法和应用场景来介绍一下单例模式
一、单例模式介绍 1.1 单例模式是什么单例模式也就是指在整个运行时域中,一个类只能有一个实例对象。
那么为什么要有单例模式呢?这是因为有的对象的创建和销毁开销比较大,比如数据库的连接对象。所以我们就可以使用单例模式来对这些对象进行复用,从而避免频繁创建对象而造成大量的资源开销。
1.2 单例模式的原则为了到达单例这个全局唯一的访问点的效果,必须要让单例满足以下原则:
- 阻止类被通过常规方法实例化(私有构造方法)
- 保证实例对象的唯一性(以静态方法或者枚举返回实例)
- 保证在创建实例时的线程安全(确保多线程环境下实例只有一个)
- 对象不会被外界破坏(确保在有序列化、反序列化时不会重新构建对象)
关于单例模式的写法,网上归纳的已经有很多,但是感觉大多数只是列出了写法,不去解释为什么这样写的好处和原理。我偶然在B站看了寒食君归纳的单例模式总结思路还不错,故这里借鉴他的思路来分别说明这些单例模式的写法。
本文共计2801个文字,预计阅读时间需要12分钟。
单例模式是Java中最简单的设计模式,也是技术面试中频率极高的题目。它不仅涉及到设计模式,还包括线程安全、内存模型、类加载等机制。以下将从单字出发,分别阐述。
单例模式可以说是Java中最简单的设计模式,也是技术面试中频率极高的面试题。因为它不仅涉及到设计模式,还包括了关于线程安全、内存模型、类加载等机制。所以下面就来分别从单例模式的实现方法和应用场景来介绍一下单例模式
一、单例模式介绍 1.1 单例模式是什么单例模式也就是指在整个运行时域中,一个类只能有一个实例对象。
那么为什么要有单例模式呢?这是因为有的对象的创建和销毁开销比较大,比如数据库的连接对象。所以我们就可以使用单例模式来对这些对象进行复用,从而避免频繁创建对象而造成大量的资源开销。
1.2 单例模式的原则为了到达单例这个全局唯一的访问点的效果,必须要让单例满足以下原则:
- 阻止类被通过常规方法实例化(私有构造方法)
- 保证实例对象的唯一性(以静态方法或者枚举返回实例)
- 保证在创建实例时的线程安全(确保多线程环境下实例只有一个)
- 对象不会被外界破坏(确保在有序列化、反序列化时不会重新构建对象)
关于单例模式的写法,网上归纳的已经有很多,但是感觉大多数只是列出了写法,不去解释为什么这样写的好处和原理。我偶然在B站看了寒食君归纳的单例模式总结思路还不错,故这里借鉴他的思路来分别说明这些单例模式的写法。

