>  기사  >  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
        }
    }
}

DocumentServicePersonUpdaterPersonValidator에 주입되었습니다. PersonUpdater에서 빈은 다른 업데이트 흐름에 사용될 수 있지만 PersonValidator에서는 빈이 만 군문서 검색에 사용 WHEN 법적 연령의 남성 업데이트입니다. 동일한 결과를 얻을 수 있는 가능성 중 하나는 아래 예입니다.

@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으로 문의하세요.