Programowanie obiektowe a metody statyczne

Programowanie obiektowe a metody statyczne
T9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 329
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ć.

Maciej Cąderek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1264
0

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

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

T9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 329
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ć? :)

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
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

WG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
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ą :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.