"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."
Akkor egy picit néz ki a Java világán túlra is.
private int_pozitiveNumber;
public int PozitiveNumber
{
get
{
return _pozitiveNumber;
}
set
{
if (value < 0)
{
throw new Exception();
}
_pozitiveNumber = value;
ValueChanged();
}
}Értem én, hogy ez is két függvény lesz gyakorlatilag, azonban szemantikailag mást jelent egy értékadás és mást egy metódushívás.
Jelentéstartalom meg egyértelmű: belső adattagokat (C#-ban) kisbetűvel, propertyket, nagybetűvel szokás kezdeni, metódusok mögött meg egyébként is ott a zárójel. Ja és még az IDE is máshogy jelzi a listákban. (Igen, tudom, hogy más a Java-ban az elnevezési konvenciók).
Ellenben, mikor konzekvensen set/get/isAkarmi() -t használsz "propertyként", akkor se bízhatsz abban, hogy van mögötte bármiféle egyéb funkció. OOP egyik előnye az absztrakció: te csak annyit látsz kívülről, hogy az egy objektum tulajdonsága. Az, hogy belül mit csinál, az ilyen esetben lényegtelen.
"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"
Ez a hozzáállás miatt nem képeznek már normális fejlesztőket, csak kódlapátolókat. "Minek tudjon bármit is, hisz úgy is megcsinálja a gép!"
----------------
Lvl86 Troll