序言
在程序中,有一些对象其实我们只需要一个,比如说:线程池、缓存、处理偏好设置的对象等等。
事实上,这类对象应该只创建一个实例,若制造出多个实例,就会导致许多问题发生,如程序行为异常,资源使用过量或返回的结果不一致。
利用静态类变量、静态方法和适当的修饰符,不是也可以达到这种效果嘛?
确实如此,但其有个缺点,那就是必须在程序一开始就创建好对象,万一这个对象非常耗费资源,而程序又在这次的执行过程中一直没用到它,就会浪费资源。
虽然鱼和熊掌不可兼得,但我们的单例模式却可以分别实现“鱼”或“熊掌”。