单例模式-创新互联

单例模式singleton
  • 条件
  • 实现方式

创新互联自2013年起,先为丁青等服务建站,丁青等地企业,进行企业商务咨询服务。为丁青企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。条件

1、 只能有一个实列
2、 实力为程序自行创建
3、 像整个系统提供这个实例

实现方式

1、饿汉模式

public class EagerTaskManager {//饿汉模式,类加载时唯一实例会被创建
    private static final EagerTaskManager taskManager = new EagerTaskManager();

    private EagerTaskManager(){}

    public static EagerTaskManager getInstance() {return taskManager;
    }
}

2、懒汉模式

public class LazyTaskManager {//懒汉单列,节省内存空间,使用时在创建单列对象

    private static LazyTaskManager taskManager = null;

    private LazyTaskManager() {}
    
    // 懒汉模式,为避免多个线程同时调用实列方法,使用同步锁
    // 直接在方法上加synchronized解决线程问题,但每次调用该方法都需要同步锁判断,降低了效率
    public static LazyTaskManager getInstance() {if (taskManager == null) {synchronized (LazyTaskManager.class) {// 只对实列方法进行同步锁定即可,如果多个线程同时进入if分支,会产生新的实列,进行双重检查锁定
                if (taskManager == null) {taskManager = new LazyTaskManager();
                }
            }
        }
        return taskManager;
    }
}

3、 IoDH

public class IoDHTaskManager {// 单列对象没有作为成员变量,所以不会随着类加载而实例化
    private IoDHTaskManager(){}

    private static class HolderClass {private final static IoDHTaskManager taskManager = new IoDHTaskManager();
    }

    // 第一次调用该实例化方法,随之静态内部类的加载,实例化该单列对象
    public static IoDHTaskManager getInstance() {return HolderClass.taskManager;
    }
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:单例模式-创新互联
网站网址:http://bzwzjz.com/article/hepho.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设方案 品牌网站建设 网站设计 营销型网站建设 外贸网站建设 温江网站设计 企业网站设计 手机网站建设 手机网站制作 盐亭网站设计 成都网站建设推广 成都网站制作 高端定制网站设计 四川成都网站设计 企业网站制作 企业网站设计 网站制作公司 响应式网站设计 成都网站建设流程 成都网站制作 成都网站建设 高端网站设计