Gå til innhold

Naming conventions for get/set


Anbefalte innlegg

Jeg har lært at man alltid skal opprette get/set metoder istedenfor å lage public fields (men dette virker jo bare unødvendig i mange tilfeller?), og at de skal kalles get<variabel navn> / set<variable navn>.

 

Men, jeg har lagt merke til at flere klasser i Java API bruker samme metode navn for get/set, men bare ikke overloader/overloader (f.eks Buffer, kaller du på limit() så returnerer den, kaller du på limit(29) så setter den limit).

For meg så virker det mye enklere og oversiktelig. Er det noen grunn til å ikke navngi slik?

Lenke til kommentar
Videoannonse
Annonse
Jeg har lært at man alltid skal opprette get/set metoder istedenfor å lage public fields (men dette virker jo bare unødvendig i mange tilfeller?), og at de skal kalles get<variabel navn> / set<variable navn>.

 

Men, jeg har lagt merke til at flere klasser i Java API bruker samme metode navn for get/set, men bare ikke overloader/overloader (f.eks Buffer, kaller du på limit() så returnerer den, kaller du på limit(29) så setter den limit).

For meg så virker det mye enklere og oversiktelig. Er det noen grunn til å ikke navngi slik?

 

Uten å svare på spørsmålet ditt, så kan jeg jo si følgende:

 

Grunnen er vel det som på godt norsk kalles for encapsulation, det vil si at brukerne av en klasse ikke skal behøve å vite noe om hvordan ting fungerer på "innsiden", bare hvordan klassen brukes. Vel, det er i allefall mye av tankegangen bak.

 

Hvis brukerne av klassen din kun kan kommunisere med instanser av den, via gettere og settere, kan du forandre ganske mye på "innsiden" av klassen din uten at brukerne trenger å gjøre noe som helst annet enn å bytte ut .class-filen. Unnlater du konsekvent å bruke gettere og settere fordi du synes det er ekstra pes, så mister du mye av denne fleksibiliteten.

 

Men dette vet du vel fra før av.

 

Men for å SVARE på spørsmålet ditt: Det er jo ofte man får behov for å gjøre andre ting i setXXX-metoder, enn bare å gi variabelen xXX verdi.

 

Werner

Endret av wernie
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...