今天在写一个Servlet,需要从获取很多web.xml中定义的参数。一般我们都这么取:
但是一个两个还好,参数太多的话就看到一大堆这种代码。感觉特别别扭。所以就想到了模板的方式,反正都是先取出来,然后判断,最后处理。处理这部分抽象出来,其他部分作为模板。
一个内部的模板类如下:
setParameter方法是抽象方法,用于在判断完成后处理参数。
然后读取参数就可以像下面这样:
我现在正在考虑是否应该把获取参数部分也抽象出来,这样这个类就可以用在其他地方了,而不是局限于Servlet中。正在继续重构中。
不知道自己改得是简化了处理还是复杂了处理,大家也讨论讨论。
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中。正在继续重构中。
不知道自己改得是简化了处理还是复杂了处理,大家也讨论讨论。