Interface – metody prywatne

Od Javy 9, w interfejsach możemy używać również metod prywatnych

Ponieważ Java pozwala nam na używanie metod domyślnych, pozwala tym samym na wprowadzanie ciała metod. W sytuacji gdy dwie metody domyślne, używają tego samego fragmentu kodu – ten wspólny fragment kodu można wydzielić do jednej metody prywatnej. Mata ta zaś będzie wywołana przez te metody domyślne. W ten sposób jesteśmy zgodnie z zasadą DRY – don’t repeat yourself. Przykład:

private int getValue(int value1, int value2) {        
return value1 + value2;
    }    
    
    default int multiply(int value) {
        return getValue(4,3) * value;
    }  
    
    default int sum(int value) {
        return getValue(4,3) + value;
    }
} 

Powyżej dwie metody domyślne, które wykorzystują ten sam algorytm dodawania dwóch liczb. W obu przypadkach korzystamy z tej samej metody prywatnej zwracającej wynik algorytmu – getValue. Pierwsze metoda domyślna mnożymy watrość getValue przez wartość parametru value, a w drugiej dodajemy do wyniku wartość parametru value.

Gdyby nie metody prywatne, to albo konieczne byłoby duplikowanie metody algorytmu w metodach multiply i w sum, albo użylibyśmy metodę domyślną lub statyczną. Tylko, że wtedy taka metoda była by publiczna. Jeżeli więc pewna metoda jest potrzebna tylko do wykorzystania w danym interfejsie to wystarczy nam użycie metody prywatnej . Dodatkowo prywatne metody w interfejsach mogą być jednoczesnie metodami statycznymi.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *