( _Franko_ | 2010. 09. 18., szo – 22:08 )

Pedig mennyivel szebb és olvashatóbb egy property. Főleg, ha ki lehet optimalizálni, hogy ne egy teljes függvényhívást végezzen egy egyszerű, mezei adattag írásához/olvasásához.

A szebb és olvashatóbb dolog szubjektív, nekem valahogy jobban olvashatóbb a
x.setY(z);
mint az
x.y = z;
forma.

Az utóbbi esetén nem lehetek biztos benne, hogy a beállításkor fut-e le a validálás, vagy értesítődik-e a változásról egy observer. Az első esetben az a plusz információ megvan, hogy potenciálisan futni fog validálás, vagy történik valami változáskezelés.

Ha property kell Java nyelven, akkor arra ott a public a mezők elé private helyett.

A kioptimalizálás a JVM dolga, a programozó ne optimalizálgasson feleslegesen, főleg, ha nem is ért hozzá, mert sokszor több kárt csinál, mint hasznot. Ha a getter/setter a megszokott módon "üres", akkor nincs függvényhívás, CPU időben olyan, mintha értékadás történne. Érdemes elmélyedni néha a futásidejű és főleg a fordítási idejű optimalizálásokban... :)

Tegye fel a kézét aki tudta, hogy Java 5 óta a "a" + "a" + "a" jellegű forráskód StringBuilder összefűzéssé fordul, tehát felesleges kézzel beleírni a forrásba a csúnya és hosszú StringBuilder append hívásokat, ezt megteszi már a fordító is. És ezernyi ilyen apró trükk van, csak rá kell nézni a Java 6 közel 900 opciójára, amelyekkel a futásidejű (GC, memória, CPU, I/O, stb.) optimalizás módját és paramétereit lehet befolyásolni.

A Java nem csak arról szól, hogy egy nyelven programozunk, ez egy hatalmas és összetett platform... :)
--
http://wiki.javaforum.hu/display/FREEBSD