我有一个抽象类,只有一个抽象方法;和一些实施班(约6人)。实现抽象类的优雅方式
该方法返回一个“需要”两个参数的对象。
但是,在某些情况下,只需要两个参数中的一个。
有没有一种优雅的方式来实现这种情况? (而不是返回该参数为空)
public class NormResult {
protected List<String> normWords;
protected List<String> unNormWords;
public NormResult(List<String> normWords,List<String> unNormWords) {
this.normWords = normWords;
this.unNormWords = unNormWords;
}
public NormResult(List<String> normWords) {
this.normWords = normWords;
this.unNormWords = Collections.emptyList();
}
}
public abstract class AbstractNormalizer {
protected abstract List<NormResult> doNorm();
}
public class FirstNormImpl extends AbstractNormalizer {
protected List<NormResult> doNorm() {
List<String> normWords = new ArrayList<>(5);
List<String> unNormWords = new ArrayList<>(7);
NormResult result = new NormResult(normWords, unNormWords);
return result;
}
}
public class SecondNormImpl extends AbstractNormalizer {
protected List<NormResult> doNorm() {
List<String> normWords = new ArrayList<>(8);
NormResult result = new NormResult(normWords);
return result;
}
}
个人而言,我会用'null'替换'Collections.emptyList()',但除此之外,我没有看到任何问题。 – domsson
你为什么要做**返回结果; **当你应该返回一个List? –
你的代码没有编译 –