Dica Java:函数式接口 #(函数.接口.Dica.Java...)
在 java 应用程序的开发中,在不同位置对同一个 bean 进行依赖注入是很常见的,并且通常在 bean 之间的关系中进行依赖注入,如下例所示:
@service @requiredargsconstructor public class personupdater { private final personvalidator validator; private final documentservice documentservice; //outras utilizações no fluxo de atualização public person toupdate(final person person) { validator.validate(person); //...fluxo de atualização de pessoa return person; } }
@component @requiredargsconstructor public class personvalidator { private final documentservice documentservice; public void validate(final person person) { if (person.isadult() && person.ismale()) { final var documents = documentservice.getmilitarydocuments(person.getid()); //validações necessárias } } }
bean documentservice 被注入到 personupdater 和 personvalidator 中。在 personupdater 中,bean 可用于其他更新流程,但是,在 personvalidator 中,bean 将only 用于搜索军事文件何时它是法定年龄男性的更新。具有相同结果的一种可能性如下示例:
@service @requiredargsconstructor public class personupdater { private final personvalidator validator; private final documentservice documentservice; //outras utilizações no fluxo de atualização public person toupdate(final person person) { validator.validate(person, () -> documentservice.getmilitarydocuments(person.getid())); //...fluxo de atualização de pessoa return person; } }
@Component @RequiredArgsConstructor public class PersonValidator { public void validate(final Person person, final Supplier<list>> documentsSupplier) { if (person.isAdult() && person.isMale()) { final var documents = documentsSupplier.get(); //validações necessárias } } } </list>
通过函数接口,一系列使用java应用程序行为的选项出现了!它们通过方法参数(如示例中)和某些类的属性使使用更加灵活。
除了仅在一个地方完成依赖注入之外,我们还有:
- 减少验证器耦合
- 增加方法的灵活性
以上就是Dica Java:函数式接口 #的详细内容,更多请关注知识资源分享宝库其它相关文章!