单例模式
2015-04-21 14:31:41 23 举报
单例模式是一种常用的软件设计模式,它保证一个类仅有一个实例并提供一个全局访问点。在实现时,首先需要判断实例是否已经存在,如果存在则直接返回该实例;如果不存在,则创建一个新的实例并将其保存在一个静态变量中。这样,当下次需要获取该类的实例时,可以直接从静态变量中获取而不需要再次创建。 单例模式具有以下优点: - 节省内存:由于只维护一个实例,减少了内存开销。 - 避免重复创建对象:每次获取实例时都返回同一个对象,避免了重复创建对象的开销。 - 方便管理:可以通过修改静态变量来控制实例的创建和销毁。
作者其他创作
大纲/内容
单例模式
饿汉模式
/***对实例化对象instance进行同步*同时对instance属性修饰为volatile(synchronized有可见性)*/private volatile static Singleton instance=null;public synchronized static Singleton getInstance(){ if(instance==null) { synchronized(Singleton.class) { if(instance==null) instance=new instance; } } return isntance;}
一般条件
线程安全
Initialization on demand holder
懒汉模式
采用同步块synchronized
提供一个全局访问点
/***线程安全,创建时加载instance*占用资源*/private static Singleton instance=new Singleton();public static Singleton getInstance(){ return instance;}
私有化构造方法
/***对整个方法进行同步不太好*/private static Singleton instance=null;public synchronized static Singleton getInstance(){ if(instance==null) {instance=new instance;} return isntance;}
线程不安全
/***线程不安全,调用方法时加载instance*延迟加载*/private static Singleton instance=null;public static Singleton getInstance(){ if(instance==null) {instance=new instance;} return isntance;}
double-CheckLocking
0 条评论
下一页