定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例
类图
优缺点:
优:1. 内存中仅一个实例,故减少了内存开支
2. 由于只生成一个实例,故减少了系统性能开销(如读取配置,产生依赖对象等,利用常驻内存的方式,仅生成一个对象
3.可以避免对资源的多重占用(如只有一个实例存在,避免对同一资源文件同时写操作)
缺: 1. 单例模式没有接口,扩展困难
2. 与单一职责原则有冲突
使用场景
1. 要求生成唯一序列号的环境
2. 整个项目需要一个共享访问点或共享数据(如web页面的计数器)
3. 创建一个对象需要消耗的资源过多时
注意事项
单例模式的另外一种实现方式,存在线程不安全问题
有时候我们要求一个类有两三个对象?单例模式如何解决?
通用代码