java单例模式

今天学了单例,贴出来大家共享下,哈哈。

 

Singleton 模式的宗旨在于确保某个类只有一个实例,别且为之提供一个全局访问点。为了防止其他工作人员实例化我们的类,

可以为该类创建唯一一个构造器,并将构造器的可见设置为私有。值得注意的是,如果我们创建了其他的非私有的构造器,或者根本没有为该类提

供构造器,那么其他人员还是能实例化我们的类。 如果不希望提前创建单例对象,我们可以等到第一次使用该单例对象的时候在创建它,即


通常单例模式在Java语言中,有两种构建方式:

懒汉方式:指全局的单例实例在第一次被使用时构建。延迟初始化。 
饿汉方式:指全局的单例实例在类装载时构建。 急切初始化。 
1,饿汉式单例类


public class Singleton1 {
    
    private Singleton1() {
    }
    // 在自己内部定义自己一个实例.
    // 注意这是private 只供内部调用

    private static Singleton1 instance = new Singleton1();

    /** *//**
     *  这里提供了一个供外部访问本class的静态方法,可以直接访问  
     * @return
     */
    public static Singleton1 getInstance() {
        return instance;
    }
}

 

2,懒汉式单例类

public class Singleton2 {

    private static Singleton2 instance = null;
    /** *//**
     * 这个方法比上面有所改进,不用每次都进行生成对象,只是第一次   
     * 使用时生成实例,提高了效率!
     * @return
     */
    public static  Singleton2 getInstance() {    
        if (instance == null)
            instance = new Singleton2();
        return instance;
    }
}

 

你可能感兴趣的:(java,工作)