设计模式(单例模式)

确保一个类的实例只有一个,任何时间任何位置,获得的该类实例总是同一个。

而单例模式又分为饿汉模式和懒汉模式。

饿汉模式

/**
 * 饿汉模式
 */
public class Dog
{
    private String name;
    private int age;

    //准备该类的实例
    private static Dog obj = new Dog();

    //准备一个方法获得这个实例
    public static Dog getInstance(){
        return obj;
    }

    private Dog() {
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

懒汉模式

/**
 * 懒汉模式
 */
public class Cat
{
    private String name;
    private int age;

    //声明该类实例
    private static Cat instance ;


    //提供一个静态方法获得这个实例
    public synchronized static Cat getInstance(){
        if (instance==null){
            instance = new Cat();
        }
        return instance;
    }

    private Cat() {

    }

    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

你可能感兴趣的:(单例模式,java)