函数式接口实现策略模式
1.案例背景
我们在日常开发中,大多会写if、else if、else 这样的代码,但条件太多时,往往嵌套无数层if else,阅读性很差,比如如下案例,统计学生的数学课程的成绩:
- 90-100分,打印【优秀A+】
- 80-90分,打印【优秀A-】
- 70-80分,打印【中等B+】
- 60-70,打印【中等B-】
- 60及以下,打印【同学还需努力!】
我们会写如下代码:
// 0<=grade<=100
if (grade > 90 && grade <= 100) {
System.out.println("【优秀A+】");
} else if (grade > 80 && grade <= 90) {
System.out.println("【优秀A-】");
} else if (grade > 70 && grade <= 80) {
System.out.println("【中等B+】");
} else if (grade > 60 && grade <= 70) {
System.out.println("【中等B-】");
} else {
System.out.println("【同学还需努力!】 ");
}
毋庸置疑,上述代码完全正确,可以满足业务要求,但考虑到未来业务的扩展性与代码的可阅读性,大量的if、else语句使代码不够优雅