论单例模式的优缺点

优点:

1、提供了全局唯一实例的访问。
2、由于单例调用被初始化后,整个应用生命周期只存在一个对象,因此可以节约一定的资源,不用重复创建,对于一些需要频繁创建和销毁的对象,使用单例设计模式无疑可以节省资源,提高应用的性能。
3、允许可变数目的实例。

缺点:

1、由于单例设计模式没有抽象层,也就是说想要扩展单例类很困难,基本上平常也只是用作工具类来使用。
2、单例类的职责过重,一定程度上违背了“单一职责原则”。
3、因为单例是一种设计模式,也会有人过度使用单例而带来一些负面的问题,如实例化的单例对象在长时间不被使用,应用就会认为是垃圾而被回收,有可能导致对象的状态丢失,又如为了节省资源而将数据库连接池设计成单例模式,有可能导致共享连接池对象过多而出现溢出的问题。