某一天感觉单例模式和静态类好像呀,一个是只创建了一个对象,另个一是不需要创建对象,那么问题来了,我们该如何选择使用单例模式还是静态类呢?下面将做讲解:
一.二者之间的区别
1、区别如下表所示:
2、单例模式对于静态类主要优点是面向对象:
- 单例可以继承一个基类实现多态;
- 实现一个接口,提供不同的功能;
二.如何选择
1:当需要支持面向对象的功能时,选择单例,例如:管理状态(类的字段)
2:如果仅仅是将一堆静态方法存储到一起,则选择静态类
三.使用案例
1:单例模式:
- Java运行时(java.lang.Runtime);
- 网站计数器;
- 日志对象
2:静态类:
- c#线程池;
- java.lang.Math;
- c#并行计算(Parallel)
四.总结
其实区分起来还是挺容易的,牢牢记住第二部分(如何选择)说的内容的就可以了。