关于单例模式(创建型)

来源:互联网 发布:linux current comm 编辑:程序博客网 时间:2024/06/16 16:29

单例模式用来确保每一个类都有一个实例,并且自行实体化并且向整个系统提供这个实例,单例模式常常用于避免产生多个对象消耗过多的资源,或者某种类型的资源应该有并且只有一个,例如访问数据库和访问IO的时候就要考虑单例模式。

比较经典的单例模式有懒汉式和恶汉式两种,下面给出这两种不同方式的UML图:

1.恶汉式

2.懒汉式:


下面是懒汉式和恶汉式的示例代码:

1.恶汉式

public class HungrySingleton {      //1.私有的不能被从新赋值的静态的成员变量      private final static HungrySingleton hun = new HungrySingleton();     //2.私有化构造器,其他类不能再外部创建     private HungrySingleton() {     }    //3.公共的静态方法,其他类能得到这个唯一实例    public static HungrySingleton get() {         return hun;    } }
2.懒汉式

public class LazySingleton {    //1.私有的静态的成员变量,需要赋值,不能final修饰    private static LazySingleton onlyone;    //2.私有化构造器    private LazySingleton() {    }    //3.公共的静态方法,用来获得这个实例    synchronized public static LazySingleton get() {        if(onlyone==null){            onlyone=new LazySingleton();        }        return onlyone;    }}


0 0
原创粉丝点击