如果要定义一个星期的类,最多有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);
}
}
最后输出