说实话。。。iOS开发的学习中,我从未使用过单例,也是最近才开始思考单例这个问题,

以前遇到这种需求的时候都是直接一个静态过去解决全部,但是静态带来的后果就是不便于维护。

 

http://www.blogjava.net/ITdavid/archive/2008/01/22/176939.html看到了这么一段话

 

# re: 采用单例模式还是静态方法? 2008-01-27 07:56 小雨
这个问题我也思考了一段时间。 

我现在的想法是这样的:如果一个类不需要扩展,就使用静态方法类,当然也可以使用单例,只是用单例的话写起来麻烦,使用哪个,决定权在你手上。 
如果是个需要扩展的类,那就最好使用单例了,因为用静态方法类的话,在代码中都是这么使用的 SomeClass.doSomething(),当这个SomeClass类需要扩展的时候,比如你用一个SubClass继承了SomeClass,项目中的代码都需要改成SubClass.doSomething()的话,需要改非常多的地方。如果一开始使用的是单例类,你一开始使用SomeClass的时候是这么写的:SomeClass sc = SomeClass.getInstance();,后面都调用sc.doSomething();,当你需要替换成SubClass的时候只要改掉声明部分:SomeClass sc = SubClass.getInstance();。 

DAO我认为还是用单例比较好。至于你说的占资源,其实单例类和静态方法类是一样的。你应该先搞清楚一个类无论有多少个实例,它所含有的方法代码只会出现在内存中一次而已。只要你的这个DAO没有成员变量,无论你实例化多少次,占用的内存是几乎不变的。 

这里有一个CSDN上2004年的老帖子: 
http://topic.csdn.net/t/20040427/12/3012555.html  回复  更多评论
  
 
这个回复解决了我当前对使用单例还是使用静态方法去写一个底层类的疑惑。