加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

设计模式——单例模式

发布时间:2020-12-15 07:08:47 所属栏目:Java 来源:网络整理
导读:设计模式(Design Pattern) 是一套被反复使用、多数人知晓的、经过分类编目、代码设计经验的总结。 目的 让代码更容易被他人理解、保证代码可靠性。 ? 单例模式: 应用场合:有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等。如

设计模式(Design Pattern)

  是一套被反复使用、多数人知晓的、经过分类编目、代码设计经验的总结。

目的

  让代码更容易被他人理解、保证代码可靠性。  


?

单例模式:

  应用场合:有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等。如果创造出多个实例,就会导致很多问题,比如占用资源过多,不一致的结果等等。

  作用:保证整个应用程序中某个实例有且只有一个

  类型:饿汉模式、懒汉模式

?

  • ?  饿汉模式
Public class Sington  {
    // 1.将构造方法私有化,不允许外部直接创建对象
    private Sington() {}

   // 2. 创建类的唯一实例   用 private static 修饰
     private static Sington instance = new Sington() ; 
    
    //3. 提供一个用于获取实例的方法
    public static Singleton getInstance(){
        return instance;
    }   
}    

  

  •   ?懒汉模式? ——相比于饿汉模式,懒汉模式开始只是先声明实例,并没有被初始化,其次在提供获取实例的方法中判断实例是否为空,空则创建,非空则直接返回。
Public class Sington  {
    // 1.将构造方法私有化,不允许外部直接创建对象
    private Sington() {}

   // 2. 创建类的唯一实例
     private static Sington instance ; 
    
    //3. 提供一个用于获取实例的方法
    public static Singleton getInstance(){
     if(instance == null){
       instance = new Sington();
     } return instance; } }

?  区别

    饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快。 线程安全

    懒汉模式的特点是加载类时比较快,单运行时获取对象的速度比较慢。线程不安全

  

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读