Programowanie obiektowe a metody statyczne

0

Czy to normalne\pożądane że podczas programowania obiektowego często powstaje mi dużo metod niezależną lub prawie niezależą od stanu obiektu i równie dobrze mogły by być static? Podczas "obrabiania" danych staram się przekazywać zmienne jako parametr bo a) podobno taki jest dobry zwyczaj i b) tak jest zwyczajnie łatwiej bo widać co się robi, a nie się zgaduje(od czego zależy wynik). Jeśli do tego metody są dość krótkie to bardzo często kończę z klasami w których albo ~duzo metod mogło by być statycznymi, albo z klasami których interfejsy publiczne są praktycznie "funkcjami" pamiętającymi ostatnie swoje wyjście. Nie wiem jak mam to interpretować.

0

Bo ja wiem, zależy co piszesz. Rich Hickey tak pisał programy w Javie aż w końcu stworzył Clojure ;D

3

To nie jest problem, raczej normalna sytuacja w kontekście kodu przetwarzającego dane. Generalnie kod który jest bezstanowy i pracuje tylko na niemutowalnych obiektach to jest bardzo dobry kod.
Niemniej odradzałbym tutaj silne poleganie na staticach bezpośrednio, bo ciężko się to potem mockuje i testuje jednostkowo.

0

Dzieki za odpowiedz, czyli tragedii nie ma szału raczej też nie. Słowa 'static' staram się nie używać wiecej niż trzeba bo jest zaraźliwe i z reguły jest z tego wiecej szkody niż pożytku + pozwala radośnie używać metod wszędzie na około. Co znaczy mocować? :)

0

Najistotniejszą rzeczą faktycznie w tym są mockowanie i testy, ale pomysl tez że jak masz statica to cały polimorfizm / dziedziczenie idzie w dupe

0

Ja metod statycznych używam właściwie wyłącznie w klasach "narzędziowych" które, jak sam napisałeś, z natury rzeczy nie mają/nie chcemy aby miały stan. Poza tym przychodzą mi na myśl tylko bardzo specyficzne zastosowania. Na przykład dość niedawno używałem pola statycznego klasy do monitorowania czy w ramach jednego procesu systemowego dana klasa jest wywoływana tylko jednokrotnie - ale to jest specyficzne zastosowanie ponieważ to był daemon. Generalnie wszystko z głową :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1