Hirdetés

Keresés

Új hozzászólás Aktív témák

  • MrSealRD
    veterán

    Egyébként nagyon csúnya dolog javában a publikus adattag. Ilyen pl a Player osztályban a number. Ugyan működik a program de az egyik objektum-orientált elvet sérti meg a program, mégpedig az egységbezárást (Encaptulation). Illik private-ként deklarálni az adattagokat, és getter/setter metódusokkal intézni az adattagok írását, olvasását.

    Hát azért ez egy picit nem ilyen egyszerű. Azzal, hogy private-té teszel minden tagváltozót és mindenre csinálsz "no-brain" gettert/settert (mindenféle logika nélkül, csak változó beállítás, változó visszaadás, mint a ahogy a java kódok nagy részénél látható) ezzel lehetővé téve, hogy kívülről megváltoztassák az objektumod belső állapotát, még nem vagy sokkal közelebb az egységbezáráshoz ahhoz képest, hogy mindent publicon hagysz.

    Ez igaz, de később ha logika kell vagy bármilyen módosítás a get/set műveletbe, akkor melyiket könnyebb módosítani? A kész getter/setter-ekbe beleírni vagy minden public-ot private-ra, majd getter/setter-ek ráadásul ha használtad már valahol akkor azokat is át kell írni... ?!

  • bucsupeti
    senior tag

    Egyébként nagyon csúnya dolog javában a publikus adattag. Ilyen pl a Player osztályban a number. Ugyan működik a program de az egyik objektum-orientált elvet sérti meg a program, mégpedig az egységbezárást (Encaptulation). Illik private-ként deklarálni az adattagokat, és getter/setter metódusokkal intézni az adattagok írását, olvasását.

    Hát azért ez egy picit nem ilyen egyszerű. Azzal, hogy private-té teszel minden tagváltozót és mindenre csinálsz "no-brain" gettert/settert (mindenféle logika nélkül, csak változó beállítás, változó visszaadás, mint a ahogy a java kódok nagy részénél látható) ezzel lehetővé téve, hogy kívülről megváltoztassák az objektumod belső állapotát, még nem vagy sokkal közelebb az egységbezáráshoz ahhoz képest, hogy mindent publicon hagysz.

    Nem azt mondtam hogy mindenhez ész nélkül generáltatok getter/setter-t. Ebben a példában simán hibás minden. publikus adattagokkal van minden összedobva. Ez mellett az említett number tagot direktben kérdezi le. Úgy látom ez egy oktató, gyakorló példa, amiben szerintem már régen túl kéne azon lenni, hogy az adattagokra nem hivatkozunk közvetlenül. Ha a p1 objektum el akarja mondani hogy mi az ő tippje, akkor azt mondja meg (metódus) és ne kibányásszák az agyából (közvetlen adattag elérés).

    Mégegyszer mondom, OKTATÁSI szinten tartom hibásnak a "minden publikus" elvet.

Új hozzászólás Aktív témák