标签:http 使用 文件 ar 问题 sp 时间 new 管理
今天重新翻看单例模式,把以前的几个问题和大家共享下。单例模式是最简单的设计模式之一,但是它却存在一些问题与缺陷。下面简单说下单例模式的使用中需要注意的一些问题。
1. 实例指针一定要设为静态吗?
因为GetInstance这个方法要用到该实例指针,且GetInstance这个方法是static的,所以这个指针必须是static的,否则GetInstance无法访问该实例指针。以此同时保证了向其他对象提供唯一的同一个内存区的实例指针。
2. 为什么不弃用懒汉式而直接用饿汉式?
首先,懒汉式是典型的以时间换取空间的例子,就是每次获取实例时都要进行判断,看是否要创建实例,浪费判断时间。当然如果一直没有人用的话,就不会创建实例,则是节约空间。而饿汉式是典型的以空间换取时间,就是说当类装载的时候,就创建出一个实例,不管你用不用它,然后每次调用时就不用判断了,节省了运行时间。
这里说某种方式一定比另一种方式好,它们两者各有各的优势。关键取决于你在时间和空间上效率的取舍。
3. 单例模式只是为了节省资源吗?
首先要说明的是,在一些情况下使用单例模式是可以达到节省资源的目的,但是单例模式的意图不只是为了节省资源,如果仅仅为了节省资源就使用单例模式的话可能造成单例模式的滥用。单例模式是为了确保在整个应用期间只有一个实例,以达到用户的特定的使用目的。比如windows操作系统里,有多个线程要同时进行文件创建、打开、修改一个文件的操作时,就用到单例模式设计文件管理器。所有的文件操作都必须同个这个唯一的实例来进行文件操作,避免的混乱的情况。
4. 单例模式的坏处?
5. 什么情况下不能用单例模式?
单例模式简单易用,但是也是所有设计模式中最容易滥用的模式。当你的类想得到很好的扩展时,不能使用单例模式。
也许你的程序一开始并非一定要确保只有一个实例,如果你仅仅是为了节省资源而用的话,这个时候要慎用,因为随着时间的推延也许你的程序还需要扩展。
标签:http 使用 文件 ar 问题 sp 时间 new 管理
原文地址:http://www.cnblogs.com/lyl6796910/p/3938237.html