实例,单例和静态类区别
不要纠结底层区别,因为区别不大,占用内存之争不是很有意义;
实例和静态的根本区别在于概念;面向过程年代,大家都是静态函数,单例模式是面向对象提出之后的设计模式,如果一个类里面的函数是和这个类有机的一体的,则是单例,如果类只是作为容器(比如工具类),那么就是静态。
网上一则比喻很恰当,一个人的胳膊腿,面容是和一个人息息相关的,而且因人而异,这个时候,需要实例,如果说人类所属的纲目,这些泛华的内容则是静态的,不因为每个人的不同而不同,那么就是静态的。
什么样的类是单例,什么样的类不是呢?如果实例千篇一律,比如配置(文件)类,整个应用程序都是使用一个配置文件,那么他的映射的ConfigProperties类就应该是单例;如果说不一样,比如文件类File,每个文件都是不同的,那么就是一个实例。