( saxus | 2010. 09. 19., v – 00:25 )

"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