( phaul | 2011. 03. 16., sze – 20:10 )

És ha már szóba került az OOP is, arról is ejtsünk már pár szót. Nem olyan rég, kaptam valakitől egy kritikát, hogy mégis mit csinálok, mi a fenéért rakom bele a metódusokat egy adatosztály belsejébe?! Merthogy azt úgy kellene, hogy készítek egy osztályt, amiben csak adattagok vannak (+ a hozzájuk tartozó setter/getter -- autopropertyvel ez ugye egyszerű meg gyors is lesz) és egy külön osztályba kellene kiszerveznem azokat a metódusokat, amelyek dolgoznak az objektumon, merthogy ez mostanság így szokás, meg így lesz csudaenterspájz és a többi.

Hogy a C++ fomestert idezzem igaz jopar ev tavlatabol es nem is enterspajzra hivatkozva mondta

>> Ha egy osztaly adattagja alithato settel es olvashato get-tel, akkor semmi ertelme nem publikus adattagkent kezelni. Ha egy osztaly (class) minden eleme publikus akkor az struct.

Hogy oszinte legyek sosem ertettem a javaban ezt a set/get mizeriat. Vegulis az egy erv, bar nem tul eros, hogy az osztaly API valtozasa nelkul tudja az ember megvaltoztanti a set/get implementaciojat, de erre nekem a ruby megoldasa tetszik a legjobban. Az osztalynak kezdetben van egy publikus adattagja, ami elerheto object.member neven es allithato object.member = modon. set/get fuggvenyekre nincs szukseg. Ez utan ha megis kell moge kod, a set/get fuggvenyek definialhatoak ugy, hogy az API nem valtozik ie a set tagfuggveny neve member=().