对于我的具体任务,我试图检查一个单词是否属于一组特定的词性。这可以这样做:
private boolean validate(String word) {
if (isNoun(word) || isVerb(word) || isParticiple(word) || ... )
return true;
else
return false;
}
然而,正如您所看到的那样,它很快变得丑陋且难以扩展。 如果我根据一组20条规则测试这些字符串,那么应该有一种更清晰,更具伸缩性的方法来实现这一目标。
有关如何在缩放时使代码更清晰,更好的想法吗?
答案 0 :(得分:1)
List<Predicate<String>>
,然后像这样重复:
// rules being the predicate list
boolean valid = true;
for (Predicate<> rule : rules) {
valid = valid && rule.test(word);
}
// At the end of this valid will only remain true if all of the rules pass.