[Java lista] elvi kerdes: protected adattag - eredeti tema
biziclop
biziclop at gmail.com
2009. Okt. 9., P, 17:25:59 CEST
2009/10/9 eMeL <emel at emel.hu>:
>
>> Az lenne a megfelelo kerdes, hogy mit tudunk felhozni a protected
>> adattagok ellen az accessorok javara, nem?
>
> Szerintem is itt kell megfogni a kérdést.
> Amíg protected, addig feltételezett, hogy a fejlesztő tudja mire való és
> kézben tartja a tartalmi szabályokat.
> Esetleg ha a hierarchia végén még final is lesz az osztály (vagy
> "idegen" nem származtat belőle garantáltan), akkor ez tökéletes megoldás.
> Ha túl összetett a változóra vonatkozó szabályrendszer vagy nem lesz
> final a végén és "idegen programozó" leszármaztatja, akkor mindenképpen
> a setter/getter a jobb megközelítés.
Ha vesszuk azt a fuggvenyt, ami a programod kodjat adja vissza az
idopont fuggvenyeben, akkor elmondhato, hogy barmilyen konkret kod(t)
ugyanugy viselkedik access controllal, mint anelkul. Ha tokeletesen
meg tudod elore tervezni az egesz programot, akkor megint nincs mirol
beszelni, hiszen ami egyszer le lett irva, az ugy is marad.
Tehat az egesz kerdesnek kizarolag egy olyan fejlesztesi folyamat
kereteben van ertelme, ahol egyszer mar megirt es lefixalt kodhoz kell
visszaterned es atirnod. Na, es itt jon kepbe az, hogy mit szeretnel
latni, amikor a dedelgetett protected adattagod
tipusat/nevet/viselkedeset kell megvaltoztatnod:
1. Minden, amit raepitettel, essen szet. Ezzel azt ered el, hogy az
adattagot hasznaloknak kotelessege explicite tudomast venni a
valtoztatasrol. Nyilvan ez azt is jelenti, hogy ha a hasznalok forrasa
kivul esik a te hataskorodon, akkor baj van, hiszen a valtozas csak
nagyon lassan gyuruzik vegig, addig meg ugye nem mukodik semmi.
2. Minden maradjon annyira transzparens, amennyire csak lehet.
Elvileg ez az egyeduli udvozito megoldas, de sajnos a gyakorlatban a
hasznalok olyasvalamit is feltetelezhetnek az accessorod mukodeserol,
amirol te nem tudsz (pl. hogy mindig ugyanazt a peldanyt adja vissza a
getter vagy mindig ujat), es igy a latszolag transzparens
megoldasoddal is ossze tudod donteni a rendszert. Ha ez bekovetkezik,
sokkal nehezebb kideriteni, hogy mi a gubanc.
Ez ilyen jo konyhanyelven van megfogalmazva, de legalabb tok erthetetlen is.
Mindegy, pentek van. :)
lsp
További információk a(z) Javalist levelezőlistáról