背景
IN-LINE PREDICATES CAN CREATE A MAINTENANCE NIGHTMARE
代码内部的逻辑判断将会成为代码可维护性的恶梦。
使用lambda表达式和steam接口对集合进行常见的操作是非常畅快的。例如如下代码:
public List<Person> getAdultMales (List<Person> persons) {
return persons.stream().filter(p ->
p.getAge() > ADULT && p.getSex() == SexEnum.MALE
).collect(Collectors.<Person>toList());
}
这很简便!但是这么写却会导致高昂的维护成本。在一个企业级的应用程序中,您的开发团队肯定会有编写重复的业务逻辑判断的代码,这肯定不是你想要看到的项目。因为对于一个易维护,可扩展的企业应用来说,它违反了以下3个重要的原则: