Rumah > Java > javaTutorial > teks badan

Dica Java: Antara Muka Fungsian #

Barbara Streisand
Lepaskan: 2024-09-24 06:25:36
asal
196 orang telah melayarinya

Dica Java: Functional Interface #

Adalah perkara biasa dalam pembangunan aplikasi Java untuk mempunyai suntikan pergantungan bagi kacang yang sama di lokasi yang berbeza dan selalunya dalam hubungan antara kacang seperti dalam contoh di bawah:

@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;
    }
}
Salin selepas log masuk
@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
        }
    }
}
Salin selepas log masuk

Kacang DocumentService telah disuntik ke dalam kedua-dua PersonUpdater dan PersonValidatorPersonUpdater kacang boleh digunakan untuk aliran kemas kini lain, walau bagaimanapun, dalam PersonValidator kacang akan menjadi SAHAJA digunakan untuk mencari dokumen ketenteraan BILA ia adalah kemas kini seorang lelaki dalam umur yang sah. Satu kemungkinan untuk mendapatkan hasil yang sama adalah contoh di bawah:

@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;
    }
}
Salin selepas log masuk
@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
        }
    }
}
Salin selepas log masuk
Dengan

Antara Muka Fungsian, pelbagai pilihan untuk menggunakan gelagat aplikasi Java terbuka! Mereka menjadikan penggunaan lebih fleksibel melalui argumen kaedah (seperti dalam contoh) dan melalui atribut sesetengah kelas.

Selain suntikan pergantungan hanya dilakukan di satu tempat, kami mempunyai:

    kurangkan gandingan pengesah
  • meningkatkan fleksibiliti kaedah

Atas ialah kandungan terperinci Dica Java: Antara Muka Fungsian #. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!