if/else多,让人看得心烦。if/else层次深,让人看得头痛。
怎样才能让代码优雅呢?
介绍一种方法。步骤如下:
1. 将if/else区块中逻辑抽象成接口。
2. 将各个if/else分支中的逻辑打散到实现类中。
3. 使用工厂模式,将不同的条件路由到实现类中。
假如有如下代码:
if (cond == 1) {
do business 1
}
...
if (cond == 2) {
do business 2
}
实现过程
1. 提炼接口
public class Business {
void doBusiness();
}
2. 实现类
public class Business1 {
public doBusiness() {
do business 1
}
}
public class Business2 {
public doBusiness() {
do business 2
}
}
3. 工厂类路由
工厂类
public class BusinessFactory {
private BusinessFactory() {
}
public static Business getInstance(int cond) {
if (cond == 1) {
return new Business1();
}
if (cond == 2) {
return new Business2();
}
}
}
使用类
Business business = BusinessFactory.getInstance();
business.doBusiness();
这样,以上代码就看起来优雅多了。