单例模式与静态类

什么是单例模式
单例模式指的是在应用***整个生命周期内只能存在一个实例。***单例模式是一种被广泛使用的设计模式。他有很多好处,能够避免实例对象的重复创建,减少创建实例的系统开销,节省内存。

什么是静态类
(常见的工具类都是):所有的成员都是静态的。可以认为是静态的集合。
例如:
Math类是一个静态类。
我们使用Math.round()方法时,并不关注Math类本身,关注的其实是round方法的方法体中的代码执行逻辑。构造器被private修饰,因此不能被实例化。使用工具类,其实是使用了工具类中方法的方法体。与类对象无关。

单例模式和静态类的区别

知道了什么是静态类后,来说一下他们两者之间的区别:

1)首先单例模式会提供给你一个全局唯一的对象,静态类只是提供给你很多静态方法,这些方法不用创建对象,通过类就可以直接调用;

2)单例模式的灵活性更高,方法可以被override,因为静态类都是静态方法,所以不能被override;

3)如果是一个非常重的对象,单例模式可以懒加载,静态类就无法做到;

那么时候时候应该用静态类,什么时候应该用单例模式呢?首先如果你只是想使用一些工具方法,那么最好用静态类,静态类比单例类更快,因为静态的绑定是在编译期进行的。***如果你要维护状态信息,或者访问资源时,应该选用单例模式。***还可以这样说,当你需要面向对象的能力时(比如继承、多态)时,选用单例类,当你仅仅是提供一些方法时选用静态类。

发布了58 篇原创文章 · 获赞 0 · 访问量 7003

猜你喜欢

转载自blog.csdn.net/Mweb_demo/article/details/102667392