Viac na
Aký je rozdiel medzi public, protected, package-private a private v Jave?
Existujú v Jave jasné pravidlá, kedy používať jednotlivé modifikátory prístupu, konkrétne predvolený (package private), public
, protected
a private
, pri vytváraní class
a interface
a pri práci s dedičnosťou?
2983
3
Oficiálny návod vám môže byť užitočný.
Jednoduché pravidlo. Začnite tým, že všetko vyhlásite za súkromné. A potom postupujte smerom k verejnému, ako to budú vyžadovať potreby a dizajn.
Pri odhaľovaní členov sa pýtajte, či odhaľujete voľby reprezentácie alebo voľby abstrakcie. Prvej možnosti sa chcete vyhnúť, pretože zavedie príliš veľa závislostí od skutočnej reprezentácie, a nie od jej pozorovateľného správania.
Vo všeobecnosti sa snažím vyhýbať prepisovaniu implementácií metód prostredníctvom podtried; je príliš jednoduché pokaziť logiku. Deklarovať abstraktné chránené metódy, ak máte v úmysle, aby boli prepisované.
Pri prepisovaní používajte aj anotáciu @Override, aby ste pri refaktorovaní veci nerozbili.
Rozdiel nájdete v už uvedených odkazoch, ale to, ktorý z nich použiť, sa zvyčajne odvíja od princípu najmenších znalostí. Povoľte len tú najmenšiu viditeľnosť, ktorá je potrebná.