构造方法私有化——多例设计模式

多例设计模式:可以让一个类产生指定多个实例化对象
例如:现在要定义一个表示一周时间的类,这个类只能够取七个对象
例如:现在要求定义有个表示性别的类,这个类只能够取两个对象。
核心:构造方法私有化
例:使用多例定义表示性别的类,这个类只能够取两个对象。

class Sex{
    private String title;
    private static final Sex MALE=new Sex("boy");    //static修饰 指向同一个实例对象,并且final 不可改变 内部静态Sex类对象实例
    private static final Sex FEMALE=new Sex("girl");
    private Sex(String title){
        this.title=title;
    }
    public String toString(){//覆写Object类的System.out.println()
        return this.title;
    }

    public static Sex getInstance(int ch){
        switch(ch){//JDK1.7之后switch加入对String的支持
            case 1:return MALE;
            case 2:return FEMALE;
            default: return null;
        }

    }
}

import TestDemo.Singleton;
public class TestDemo {
    public static void main(String[] args) {
        Sex sex=Sex.getInstance(1);
        System.out.println(sex);
    }
}

结果:


image.png

你可能感兴趣的:(构造方法私有化——多例设计模式)