디자인 패턴 15, 싱글 톤 패턴

단일 모드 : 클래스에 인스턴스가 하나만 있는지 확인하고 액세스 할 수있는 전역 액세스 포인트를 제공합니다.

배고픈 중국어 싱글 톤은 객체를 인스턴스화하고 싱글 톤 클래스가로드 될 때 참조를 제공합니다.

lazy singleton은 객체를 인스턴스화하고 실제로 사용되는 경우에만 자체 참조를 제공합니다.

/*
*饿汉式单例
*我们知道,类加载的方式是按需加载,且加载一次。因此,在上述单例类被加载时,
*就会实例化一个对象并交给自己的引用,供系统使用;而且,由于这个类在整个
*生命周期中只会被加载一次,因此只会创建一个实例,即能够充分保证单例
*/
public class Singleton1 {
    
    
    private static Singleton1 singleton1 = new Singleton1();//创建自己的静态对象
    
    private Singleton1(){
    
        private构造方法,堵死了外界利用new创建此类实例的可能
        
    }
    
    // 以自己实例为返回值的静态的公有方法
    public static Singleton1 getSingleton1(){
    
    
        return singleton1;
    }
}


/*
*懒汉式单例单例实例被延迟加载,即只有在真正使用的时候才会实例化
*一个对象并交给自己的引用
*/
public class Singleton2 {
    
    
    private static Singleton2 singleton2;
    
    private Singleton2(){
    
    
        
    }
    
    // 以自己实例为返回值的静态的公有方法,静态工厂方法
    public synchronized static Singleton2 getSingleton2(){
    
    
        // 被动创建,在真正需要使用时才去创建
        if (singleton2 == null) {
    
    
            singleton2 = new Singleton2();
        }
        return singleton2;
    }
}

속도 및 응답 시간의 관점에서 굶주린 스타일 (즉시로드라고도 함)이 더 좋고, 리소스 활용 효율성 측면에서 지연 스타일 (지연로드라고도 함)이 더 좋습니다.

추천

출처blog.csdn.net/weixin_45401129/article/details/114629505