不要再寫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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章