单例模式&静态类

单例模式:

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

静态类:

    静态类就是一个类内部是静态方法和静态field,构造器被private修饰,因此不能被实例化。Math类就是一个静态类。

两者的区别:

(1)单例模式更加灵活,其中的方法可以被重写,而静态类中的方法皆为静态,无法被重写;

(2)当一个类占用资源多时,单例模式可以采用懒加载模式,静态类无法做到.

关于“饿汉模式”,“懒汉模式”:

    静态的绑定是在编译期进行的,也就是说静态类中的方法从一开始就全部加载完毕了。而单例模式分为“饿汉模式”、“懒汉模式”。在“饿汉模式下”,单例模式的类在获取instance前就已经初始化好了,这种方式适合类占用资源较少的情况;在“懒汉模式”下,单例模式可以在使用时才被初始化,这种方式适合类占用资源较多的情况,这样就成功避免了资源浪费的问题。

两者之间的选择:

    当只需要一些简单的工具方法时,使用静态类,因为静态类更方便,更快速。当你需要面向对象的能力时(继承,多态),使用单例模式。

    

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【学习难度:★☆☆☆☆,使用频率:★★★★☆】直接出处:单例模式梳理和学习:https://github.com/...
    BruceOuyang阅读 702评论 1 2
  • 1 场景问题# 1.1 读取配置文件的内容## 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相...
    七寸知架构阅读 6,892评论 12 68
  • 概念 确保某一个类只有一个实例,而且自行实例化,并向整个系统提供一个访问它的全局访问点,这个类称为单例类。 特性 ...
    野狗子嗷嗷嗷阅读 565评论 0 2
  • 概述 单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个...
    zfylin阅读 356评论 0 0
  • 如果生命不能花在值得的人上, 那我宁愿浪费在自己身上。 好巧,也好尴尬,我在你的黑名单里。
    自说自桦阅读 253评论 0 1