1.饿汉式

package com.abc.beans;

import java.io.Serializable;

/*
*  单例模式(饿汉式)
*  1. 私有化构造方法
*  2. 初始化对象
*  优点:线程安全,调用效率高
*  缺点:不能延迟加载
*
*
*
* */


public class Book implements Serializable {

    private static Book book = new Book();
    private Book(){

    }
    public static Book getInstance(){
        return book;
    }
}

2. 懒汉式

package com.abc.beans;

import java.io.Serializable;

/*
*  单例模式(懒汉式)
*  1. 私有化构造方法
*  2. 不初始化对象,用的时候在初始化
*  缺点:调用效率不高
*  优点:线程安全,可以延迟加载
*
*
*
* */


public class Book implements Serializable {

    private static Book book;
    private Book(){

    }
    public static synchronized Book getInstance(){
        if(book == null){
            book = new Book();
        }
        return book;
    }
}

 3. 静态内部类实现单例模式

package com.abc.beans;

        import java.io.Serializable;

/*
 *  单例模式(静态内部类)
 *  1.线程安全
 *  2.调用效率高
 *  3.延迟加载
 *
 *
 *
 * */


public class Book implements Serializable {

    private static class BookInstanve{
        private static final Book book = new Book();
    }
    private Book(){

    }
    public static Book getInstance(){
        return BookInstanve.book;
    }
}

 

posted on 2019-04-28 21:32  <meng>  阅读(83)  评论(0)    收藏  举报