@zolwixx: zwrocPrzlPrcZtgSmgObszKdrZPmcPrcId jest różnica, prawda? Zresztą taka długa i bardzo opisowa nazwa też ma pewną wadę - zazwyczaj opisuje realizację (algorytm) zadania, co usztywnia późniejszą implementację. Czasami jest to dobre, na przykład jak używasz Spring Data, gdzie nazwy metod są mapowane 1 do 1 na zapytania SQL. Częściej jednak masz na końcu kod, którego nie za bardzo można zmieniać.
  • Odpowiedz
@MacDada: tu pokazałem to jako ciekawostkę, która czasami się przydaje, ale generalnie będzie źródłem różnych ciekawych problemów.

Implementacja w ramach interfejsu, to rozwiązanie bardzo podobne do traitów, choć nie tożsame. Na JVM masz traity w Scali.

Jednak w Javie metody domyślne w interfejsach są z innego powodu. Chodziło o zachowanie kompatybilności wstecznej, gdy dodawano nowe metody do interfejsów. Chociażby obsługę Streamów w kolekcjach. Jeżeli by tego nie zrobiono, to
  • Odpowiedz
@yelen: Ale ogólnie Java ssie, czytelniejsza jest wersja Script ( ͡ ͜ʖ ͡)

var options = {
    1: 'Jeden',
    2: 'Dwa'
}
return options[option];
  • Odpowiedz
@M4ks: Chyba chodzi Ci raczej o:

new Runnable() {
    void run() {}
}.run();

No to w JS nie ma interfaceów – jak kwacze jak kaczka,
  • Odpowiedz