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