单例模式

来源:互联网 发布:nfc扫描身份证软件 编辑:程序博客网 时间:2024/05/22 02:18
public class Singleton {/** * 单例模式最优方案 * 线程安全效率高内存占用低多线程操作原子性 * 例1: 在多个功能模块里都需要写log。为了把log集中处理,便于分析与运维,log对象可以是单例的。例2: 有一个配置文件,很多功能模块都会需要其中的一部分数据,模块1需要A部分,模块2需要B部分。配置文件对象可以是单例的。例3: 有一个通用的计算模块,它总是根据传进来的参数算出结果。这个通用模块会被很多类调用。那么它也可以是单例的。例4: 在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。 *///定义一个私有构造函数private Singleton(){}//定义一个静态私有变量private static volatile Singleton instance;//定义一个共有的静态方法,返回该类型的实例public static Singleton getInstance(){//对象实例化时与否判断if(instance==null){synchronized (Singleton.class) {//未初始化,则初始instanceif(instance==null){instance=new Singleton();}}}return instance;}}

0 0