一、定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
二、特点
1、单例类只能由一个实例
2、单例类必须自己创建自己的唯一实例
3、单例类必须给所有的其他对象提供这个实例
三、应用
在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象、win任务管理器、网站计数器常被设计成单例。常被设计成单例。
四、缺点
1、没有抽象层,单例类的扩展困难
2、单例类的职责过重,在一定程度上违背了“单一职责原则”。因为单例类既充当了工厂角色,提供了工厂方法,同时又充当了产品角色,包含一些业务方法,将产品的创建和产品的本身的功能融合到一起。
3、如果实例化的共享对象长时间不被利用,系统会认为它是垃圾,会自动销毁并回收资源,下次利用时又将重新实例化,这将导致共享的单例对象状态的丢失。