使用模板模式處理獲取參數判斷

今天在寫一個Servlet,需要從獲取很多web.xml中定義的參數。一般我們都這麼取:

String param = getInitParameter("參數名");
//然後必須判斷一下是否Null
if (param != null && param.length() >= 0) {
//處理參數
......
}

但是一個兩個還好,參數太多的話就看到一大堆這種代碼。感覺特別彆扭。所以就想到了模板的方式,反正都是先取出來,然後判斷,最後處理。處理這部分抽象出來,其他部分作爲模板。
一個內部的模板類如下:

/**
* 模板參數處理內部抽象類
* @author Miao
* @version 0.2
* @since 0.2
*/
private abstract class ParameterTemplate {

/**
* 判斷參數是否爲Null
* @param param 參數
* @return 參數非Null返回true,參數爲Null返回false
* @since 0.2
*/
private boolean isNotNullParam(String param) {
if (param == null || param.length() == 0) {
return false;
} else {
return true;
}
}

/**
* 處理參數
* @param name 參數名
* @since 0.2
*/
public void executeParameter(String name) {
String param = getInitParameter(name);
if (isNotNullParam(param)) {
setParameter(param);
}
}

/**
* 設置參數
* @param param 參數
* @since 0.2
*/
public abstract void setParameter(String param);
}

setParameter方法是抽象方法,用於在判斷完成後處理參數。
然後讀取參數就可以像下面這樣:

new ParameterTemplate() {

@Override
public void setParameter(String param) {
//處理參數
......
}
}.executeParameter("參數名");



我現在正在考慮是否應該把獲取參數部分也抽象出來,這樣這個類就可以用在其他地方了,而不是侷限於Servlet中。正在繼續重構中。
不知道自己改得是簡化了處理還是複雜了處理,大家也討論討論。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章