不要再写if...else了,优雅的处理

使用场景

项目中出现大量的if…else的判断,根据传参不同做不同的实现,这样就会显的代码很臃肿,耦合性高
消除if…else的方法有很多,包括命令模式、规则引擎、简单工厂等。接下来会介绍的一种方法是使用枚举来处理这样的大量判断。

使用枚举消除if…else

1、首先定义一个枚举类Operator,枚举类里面需要定义一个方法public abstract String excute(String datas);

2、在枚举类里面加上所有情况的实现:

public enum Operator {
	UP{
        @Override
        public String excute(String datas) {
            return datas.toUpperCase();;
        }
    },
    DOWN{
        @Override
        public String excute(String datas) {
            return datas.toLowerCase();
        }
    };
    //更多实现
    public abstract String excute(String datas);
}

3、定义一个类来调用枚举类里面的方法:

public class Executor {

    public String apply(String datas,Operator operator){
        return operator.excute(datas);
    }
}

4、最后在具体的代码里面去引用定义的类,根据传参的不同来调用枚举类里面的不同实现:

	//operator是传过来的判断条件   UP、DOWN
	Executor executor = new Executor();
	String result = executor.apply(datas, Operator.valueOf(operator));

你可能感兴趣的:(常见问题)