Najpowszechniej używane są public i private, z czego większość metod jest zwykle public, a większość pól w klasach jest private. Bardziej wysublimowani programiści używają jeszcze protected, ale default wydaje się być stosowane najrzadziej ;-)
To chyba świadczy o tym, że idea by przy pomocy pakietów i widoczności budować API jest zbyt mało oczywista.
Ok, jednak podam trochę liczb bo w tzw. międzyczasie zajrzałem do Google Code Search i "pomierzyłem" trochę ;-) i okazuje się, że wygląda to tak [hostowanie w Google Docs, eksport z OpenOffice.org przy pomocy OOo2GD]:
Czyli byłem bliski w moich przewidywaniach, okazuje się, że default jest używany jako modyfikator dostępu tylko dla 11.5% metod ze zwracanym wynikiem jako
void
, int
, String
czy boolean
, rzadziej używany jest tylko protected
, bo w 7.6% przypadków :-).Blisko 70% wszystkich metod w Java'ie jest publiczna i dostępna dla wszystkich, a 75% kodu dostępne jest poza pakietem pochodzenia.
Nie świadczy to o nas programistach za dobrze ;-)
Twórcy języka tworząc defaulta dali nam sygnał, że jest to najbardziej pożądany poziom widoczności, a my to olewamy ;-)
W klasach wygląda to ciut lepiej, bo aż 18.7% klas ma dostęp domyślny, 77.18% jest publicznych, 3.66% jest prywatna i tylko niecałe 0.5% klas jest protected [czyli są to też klasy wewnętrzne bo tylko one mogą mieć widoczność protected].
Cała ta enkapsulacja, ukrywanie implementacji i podobne są chyba zbyt trudne do stosowania w normalnym życiu ;-)
A, i to może być dyskusyjne, wydaje mi się, że kod, który można przeglądać w Google Code Search jest kodem pisanym przez statystycznie lepszych programistów niż normalny kod produkcyjny.
Potwierdza się moje twierdzenie, że jako programiści niedouczeni jesteśmy ;-)
W ramach sprzedaży metodologii "badania", np. tak szukamy klas protected, a tak metod publicznych zwracających String.
Podobne postybeta
Klasa statyczna - ki diabeł?;-)
protected - powinni tego zakazać...
Przeszacowany Linux, Niedoszacowany Windows i Ukryty MacOS ;-) czyli o tym na jakich systemach używa się głównie OOo2GD
Metapost o pisaniu posta, albo moje próby z Obsidianem
Electron + Airly = wskaźnik jakości powietrza w pasku ;-) - part 2, źródła ;-)
Brak komentarzy:
Prześlij komentarz