前言
这是我在读《Android源码设计模式解析与实战》所摘抄的笔记。
单例模式可以说得是每个程序员学习设计模式的第一种模式,也是应用的最广的一种模式。之前只是稍微地去了解过,并没有怎么系统去学,印象中就只记得什么饿汉,懒汉(哈哈),更不要说在敲代码的时候会自然而然使用单例模式。好吧,现在还是好好学习,做好笔记先。
单例模式的定义
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式的使用场景
确保一个类有且只有一个对象的场景,避免了产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。例如,创建一个对象需要消耗的资源过多,如要访问IO和数据库等资源,这时候就要考虑使用单例模式。
单例模式的实现
- 构造函数不对外开放,一般为private;
- 通过一个静态的方法或者枚举返回单例类的对象;
- 确保单例类的对象有且只有一个,尤其是在多线程的情况下;
- 确保单例类对象在反序列化时不会重新构建对象。
常用单例模式的简单示例
- 饿汉式