学习设计模式笔记--单例模式

来源:互联网 发布:淘宝网客服中心 编辑:程序博客网 时间:2024/05/29 12:28

单例设计模式非常简单,有两种基本方式,饿汉式和懒汉式
单例主要特点: 构造私有,提供public 静态返回实例的方法
直接看代码:
饿汉式:

EagerSingleton .java

public class EagerSingleton {    private static EagerSingleton instance = new EagerSingleton();    private EagerSingleton(){    }    public static  EagerSingleton getInstance(){        return instance;    }}

懒汉式:
LazySingleton .java

public class LazySingleton {    private static LazySingleton instance = null;    private LazySingleton (){    }    public static  synchronized LazySingleton getInstance (){        if(instance == null){            instance = new LazySingleton();        }        return instance;    }}

多线程的情况下,可以使用synchronized 修饰方法,另外网上一些人建议,如下写法

Singleton.java

public class Singleton {    private static volatile Singleton instance = null;    private Singleton(){    }    public static Singleton  getInstace(){        if(instance == null){            synchronized(Singleton.class){                if(instance == null){                    instance = new Singleton();                }            }        }        return instance;    }}

这就是单例的示例代码。

原创粉丝点击