面试题6,单例模式等等。24种设计模式。

singleton单例模式是java中最简单的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。

这种模式涉及一个类,他负责创建一个对象,同时确保只创建一个对象。这个类提供了一种方法来访问它的唯一对象,可以直接访问,而不需要实例化。

饿汉式:

public class SingleObject {

    private static SingleObject instance = new SingleObject();

    private SingleObject(){}

    public static SingleObject getInstance(){
        return instance;
    }

    public void showMessage(){
        System.out.println("Hello World!");
    }
}
public class SingletonPatternDemo {

    public static void main(String[] args) {
        SingleObject object = SingleObject.getInstance();
        object.showMessage();
    }
}

懒汉式:

public class SingleObject {
    // 静态实例变量
    private static SingleObject instance;
    // 私有化构造函数
    private SingleObject(){

    }

    // 静态public方法,向整个应用提供单例获取方式
    public static SingleObject getInstance(){
        if (instance==null){
            instance = new SingleObject();
        }
        return instance;
    }

    public void showMessage(){
        System.out.println("Hello World!");
    }
}

懒汉式的线程安全:

public class SingleObject {
    // 静态实例变量加上volatile
    private static volatile SingleObject instance;
    // 私有化构造函数
    private SingleObject(){

    }

    // 双重检查锁
    public static SingleObject getInstance(){
        if (instance==null){
            synchronized (SingleObject.class){
                if (instance==null){
                    instance = new SingleObject();
                }
            }
        }
        return instance;
    }

    public void showMessage(){
        System.out.println("Hello World!");
    }
}

 

posted @ 2018-12-21 14:55  正能量教官  阅读(254)  评论(0编辑  收藏  举报