单例模式
来源:互联网 发布:培训机构网络推广方案 编辑:程序博客网 时间:2024/06/04 19:40
2017年12月22日 23:32:44
单例模式 有且只有一个实例 用于只加载一次的情况
这次主要讲三种单例模式 饿汉模式 懒汉模式 双重锁
比如说ConfigManager 这个类
首先 这个类 私有化静态属性 类型是自己这个类 属性名随意
然后私有化静态构造方法 返回一个实例
然后在提供一个公有的方法让外界获取这个实例 从而使用其各种公有的属性和方法
都静态是方便项目启动的时候就加载 不用new实例就通过点.调用
public class ConfigManager {
private static ConfigManager configManager;//定义属性 配置经理 类型
//简单的单例模式 也叫饿汉模式 不能确保只有一个实例 因为一个调用时 另一个也调用 后面就可能出来两个对象
/*public static ConfigManager getInstance(){
if (configManager==null) {
configManager=new ConfigManager();
}
return configManager;
}*/
//单例模式 懒汉模式 同步锁 一个没用完之前另一个用不了 确保了后面就有了一个实例出来 另一个判断时就不会为空类
/*public static synchronized ConfigManager getInstance(){
if (configManager==null) {
configManager=new ConfigManager();
}
return configManager;
}*/
//单例模式 两重锁 能有99%的可能性保证有且只有一个实例
public static synchronized ConfigManager getInstance(){
if (configManager==null) {
synchronized (ConfigManager.class) {
if (configManager==null) {
configManager=new ConfigManager();
}
}
}
return configManager;
}
//根据键获得值 根据 驱动 url 用户名 密码名 获得相应的值
public String getValues(String key){
return properties.getProperty(key);
}
}