Sobes.tech
Junior — Middle

Ar galite pateikti konkretų pavyzdį, kaip taikomas PECS principas programinės įrangos kūrime?

sobes.tech AI

Atsakymas iš AI

PECS (Producer Extends, Consumer Super) principas padeda teisingai naudoti generikus Java kalboje, siekiant užtikrinti lankstumą ir tipų saugumą dirbant su kolekcijomis.

Pavyzdys: jei metodas turi priimti kolekciją, iš kurios jis tik skaito objektus (gamybininkas), tipo parametras deklaruojamas su extends. Jei metodas tik prideda objektus į kolekciją (naudotojas), naudojamas super.

import java.util.List;

// Elementų skaitymas iš sąrašo (Gamybininkas)
public void processElements(List<? extends Number> list) {
    for (Number n : list) {
        System.out.println(n);
    }
}

// Elementų pridėjimas į sąrašą (Naudotojas)
public void addElements(List<? super Integer> list) {
    list.add(10);
    list.add(20);
}

Čia, List<? extends Number> garantuoja, kad saugiai galima skaityti elementus kaip Number, bet negalima pridėti naujų, o List<? super Integer> leidžia pridėti Integer ir jo pogrupius, bet skaitymas grąžina Object.