使用枚举的方式 实现上一篇中介绍的例子:并增加功能,输出今天执行的内容;
import java.util.Calendar;
import java.util.Date;
/**
* 周 的枚举
*/
public enum Day {
WORK(1, 2, 3, 4, 5) {
@Override
public void doThing() {
System.out.println("工作。。。");
}
},//工作日
STA(6) {
@Override
public void doThing() {
System.out.println("健身。。。");
}
},//周六
SUN(0) {
@Override
public void doThing() {
System.out.println("休息。。。");
}
}//周日
;
Day(int... i) {
}
public abstract void doThing();
public static Day getToday() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int i = calendar.get(Calendar.DAY_OF_WEEK) - 1;
switch (i) {
case 0:
return Day.SUN;
case 6:
return Day.STA;
default:
return Day.WORK;
}
}
/**
* 今天需要完成的事项
*/
public static void executeTodayPlan() {
getToday().doThing();
}
}
执行:
结果:
总结:该种方案 使用于 较为固化的若干种情况下 有区别的执行;
可用于 :如多数据源连接的加载(程序即使用mysql也使用mogodb,就可以采用这种方式获取不同数据源的连接)。
灵活运用,切忌生搬硬套。。。
原文:http://www.cnblogs.com/fish-in-sky/p/6392033.html