首頁  >  文章  >  Java  >  Dica Java:函數式介面 #

Dica Java:函數式介面 #

Barbara Streisand
Barbara Streisand原創
2024-09-24 06:25:36320瀏覽

Dica Java: Functional Interface #

在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 被注入到 PersonUpdaterVal🎜>ValidatorPersonUpdater 中,bean 可用於其他更新流程,但是,在PersonValidator 中,bean 將ON 中,bean 將
ON>用於搜尋軍事文件

何時
@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<Document>> documentsSupplier) {
        if (person.isAdult() && person.isMale()) {
            final var documents = documentsSupplier.get();

            //validações necessárias
        }
    }
}

透過

函數介面

,一系列使用Java應用程式行為的選項出現了!它們透過方法參數(如範例中)和某些類別的屬性使使用更加靈活。
  • 除了只在一個地方完成依賴注入之外,我們還有:
  • 減少驗證器耦合
增加方法的彈性

以上是Dica Java:函數式介面 #的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn