1、单例就是保证整个系统只有一个实例对象,并且自行实例化,向整个系统提供这个实例。
2、单例给我们带来方便的同时也有一定的副作用,因为单例对象一旦创建,对象指针是保存在静态区的,单例对象在堆中分配的内存空间只有在程序终止后才会释放,过多的单例必定会增大我们消耗的内存,所以只有当我们确实需要唯一的使用对象时才需要考虑单例模式,切勿滥用单例,引用开头的话:单例应该只用来保存全局的状态,并且不能和任何作用域绑定。如果这些状态的作用域比一个完整的应用程序的生命周期要短,那么这个状态就不应该使用单例来管理。
说起来是挺容易的,但现实中对单例的滥用到处都是,一不留神就埋下了“祸根”,我在一句代码搞定启动引导页中就对单例进行了滥用,所以我们在使用单例的时候一定要想清楚了,我们是不是真的有必要用单例,如果这个对象的创建不是那么的费时费力,或者这个对象没必要再应用的整个生命周期中一直存在,那么我们是不是考虑一下换用其他的方式,而非单例?
网友评论