如果要定义一个星期的类,最多有7个对象,如果定义性别类,最多有2个对象,所以说这种情况下,不能由用户无限制的去创造实例化对象,应该只是用有限的几个,这就属于多例设计模式。

多例模式设计可以产生多个对象,要取得的时候需要加上标记

复制代码
class Sex{
    private String title; //标记,用来有参构造
    private static final Sex MALE = new Sex("男"); //设置属性
    private static final Sex FEMALE = new Sex("女"); //设置属性
    private Sex(String title){ //构造方法私有化
        this.title = title;
    }
    public static Sex getInstance(String ch) { 
        switch(ch) { //进行switch判断,取得所需数据
            case "man":
                return MALE;
            case "woman":
                return FEMALE;
            default:
                return null;
        }
    }
}
public class Test {
    public static void main(String[] args) {
        Sex sex = Sex.getInstance("man"); //参数为所要取得的数据标记
        System.out.println(sex);
    }
}
复制代码

最后输出