java重构模式匹配序列
我有以下一段代码(示例缩短):
while (reader.ready()) {
String line = reader.readLine();
Matcher responseCodeMatcher = responseCodePattern.matcher(line);
if (responseCodeMatcher.matches()) {
responseCode = Integer.parseInt(responseCodeMatcher.group(1));
continue;
}
Matcher cacheControlMatcher = cacheControlPattern.matcher(line);
if (cacheControlMatcher.matches()) {
cacheControl = CacheControl.parseString(responseCodeMatcher.group(1));
continue;
}
...
}
这些模式都是该类的静态最终成员。 所以我有一系列的模式,我想找出每一行是否匹配其中一个,如果匹配,做点什么(从一个模式到另一个模式)。你能想出一个方法来很好地重构它吗?也许是我看过的一系列模式(如果匹配,我怎么知道该怎么做?)或者其他想法
# 1 楼答案
我最终以以下方式进行重构。我创建了一个类
HttpPatterns
:我这样使用它:
我不喜欢这样,我必须把我得到的一切都投进去,但这是迄今为止我找到的最好的解决方案