Ostatni przeglądając różne projekty w Javie naszła mnie taka myśl, że Java trochę na siłę stara się być obiektowa. Wszystko musi być upakowane w klasę, co sprawia, że znaczną część klas stanowią metody statyczne. Czy tylko ja mam takie wrażenie, czy wykopowi programiści za 15K także?
@dog_meat: Rzadko spotykam się z takim podejściem. Najczęściej to są jakieś proste pomocnicze metody do manipulacji na stringach czy składaniu predykatów. Może po prostu pokaż jaki projekt używa tego zbyt wiele, będzie można więcej powiedzieć :)
@dog_meat: Przecież statyczne metody to odchodzenie od obiektowości i im więcej tym gorzej. Niektórzy puryści zrobią 50 innych klas żeby tylko 1 statycznej metody nie dodać bo to zepsuje obiektowość. Imo ok jest używanie statycznych do utils.
@Porana123: No właśnie o to mi chodzi. W Javie wszystko musi być upakowane w klasy, przez co jest wrażenie, że kod jest na siłę pisany "obiektowo", kiedy mamy całą klasę składającą się z metod statycznych, a mimo wszystko muszą one być w klasie (zamiast leżeć sobie swobodnie obok jako zwykła funkcja)
@zajety_login: Paradygmat funkcyjny oczywiście @Crisu: głownie problem dziedziczenia. I moje ulubione stwierdzenie "you wanted a banana, but you got a gorilla holding a banana" (... and whole jungle )
@hayenz: słowo klucz: interfejs @dog_meat klasy i metody statyczne to zło, stosowane zazwyczaj przez początkujących w celu uproszczenia API , a realnie tworzą bagno w kodzie. Czasem się przydają (zazwyczaj jako extensions methods, ale tylko czasem, za to dużo, dużo częściej są nadużywane przez początkujących nie rozumiejących ideai enkapsulacji do robienia syfu w postaci spaghetti code)
@hayenz: kończysz z interfejsami, które służą do wstrzykiwania klas zależnych poprzez dependency injection. Tych klas wcale nie musi być dużo, ponieważ nie masz klasycznego drzewka dziedziczenia. W Twoim przypadku interfejs IBanana oraz klasa Banana która go implementuje. Alternatywą jest założenie, że wszystko co pływa i kwacze jest kaczką. I tak samo jak każde inne założenie ma swoje wady i zalety.
Serwus, składam najserdeczniejsze życzenia z okazji dnia Mężczyzny, trzymajcie się ciepło, bo nie macie łatwo, a bez was to nie to samo, wszystkiego dobrego, pa, miłego dnia
Ostatni przeglądając różne projekty w Javie naszła mnie taka myśl, że Java trochę na siłę stara się być obiektowa. Wszystko musi być upakowane w klasę, co sprawia, że znaczną część klas stanowią metody statyczne. Czy tylko ja mam takie wrażenie, czy wykopowi programiści za 15K także?
@dog_meat:
Tak, tylko ty.
@Crisu: głownie problem dziedziczenia. I moje ulubione stwierdzenie "you wanted a banana, but you got a gorilla holding a banana" (... and whole jungle )
Komentarz usunięty przez autora
@dog_meat klasy i metody statyczne to zło, stosowane zazwyczaj przez początkujących w celu uproszczenia API , a realnie tworzą bagno w kodzie. Czasem się przydają (zazwyczaj jako extensions methods, ale tylko czasem, za to dużo, dużo częściej są nadużywane przez początkujących nie rozumiejących ideai enkapsulacji do robienia syfu w postaci spaghetti code)
To nie chodzi o to, że Java stara się być na siłę obiektowa lecz o to iż programiści nie umieją myśleć/programować obiektowo. tu masz wszystko opisane
@Jojne_Zimmerman: Np. nazwa pakietu
Alternatywą jest założenie, że wszystko co pływa i kwacze jest kaczką. I tak samo jak każde inne założenie ma swoje wady i zalety.
IBanana, Bananable to są złe konwencje
Jak już to interface Banana a klasa YellowBanana, FreshBanana etc ( ͡° ͜ʖ ͡°)