抽象一个接口: interface IMatchParser{ boolean matcher(String line, Map map); handle(ChangDuan changduan); } 每个if分支抽象成一个类继承`IMatchParser`; public class MatchParser1 implements IMatchParser{ public void handle(ChangDuan changduan) { changDuan.setName(getChangDuanInfoContent(line, LrcConstants.LrcRegEnum.TITLE.getStartIndex())); } public boolean matcher(String line, Map map) { return matcher(line, patternMap, LrcConstants.LrcRegEnum.TITLE.name()); } } 然后放到一个list中: List list = new ArrayList(); list.add(new MatchParser1()); list.add(new MatchParser2()); ... 然后实现方法变成: private static void parseLrcContent(ChangDuan changDuan, String line, Map patternMap) throws ParseLrcException { for (IMatchParser parser: list) { if (parser.match(line, patternMap)) { parser.handle(changDuan); break; } } } 后续加新的if分支只需要实现一个新的class插入到list即可