Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Brogyi: CTEK akkumulátor töltő és másolatai
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Sapphi: StremHU | Source – Self-hostolható Stremio addon magyar trackerekhez
- HThomas: Az ideális home office monitor nyomában
- BerserkGuts: 9800X3D Hitvallás, Dogma megcáfolása egy RTX5080+12600K-val
- eBay-es kütyük kis pénzért
- eldiablo: 30 év után szakítottunk, de azért még beszélünk...
Új hozzászólás Aktív témák
-
Szmeby
tag
válasz
audiophile2!
#11339
üzenetére
Az altalad emlitett absztrakcios szinten (milyen erteket vehet fel a valtozo, mi irja es mi olvassa, hany kozbeiktatott metodushivas van, stb) valoban nincs ertelme a getter setter-szeru megoldasoknak. Csak utban vannak.
Viszont az OOP _nem_ ezen az absztrakcios szinten ad valaszokat. Ez nagyon fontos, mert majd igy tudod csak feltenni a jo kerdest. Az OOP eseten sokkal fontosabb kerdes, hogy mi az osztaly celja, mi a SZANDEK, ami az osztaly letet igazolja. Ez mar filozofia, madafaka!

Szoval egy pelda kedveert ha van egy osztalyod, ami egy teglalapot reprezental, akkor valoszinuleg van neki olyan mezoje, ami a szelesseget, meg egy olyan, ami a hosszusagot tarolja. Adna magat a dolog, hogy legyen public es csokolom. DE ha ennek az osztalynak az a szandeka, hogy segitsen az adott sikidom teruletenek, keruletenek meghatarozosaban, akkor a tobbi osztaly fele' kotelessege csak ezt a infot kommunikalni, es semmi tobbet. Ugyanis, ha ennel tobb infot kommunikalna kifele, akar a szelesseget, hosszusagot, akar ezt meg irhatova is tenne, abban a pillanatban behozna pl azt a kockazatot, hogy ezzel mas osztalyok visszaelnek.
Amivel visszaelhetnek, azzal vissza is fognak elni. Hidd el, nem akarsz egy spagetti kodban konyekig turkalni egy apro kis bug megszuntetese celjabol... mikozben 20000 sort kell modositanod ilyen olyan helyeken, mert minden mindent is hasznal.
Tehat a szoftverfejleszto epelmejusege megorzese celjabol fontos az, hogy egy osztaly kizarolag azt az infot adja ki magabol, amire terveztek, es semmi tobbet. A legtobb esetben pedig ez az info koszonoviszonyban sincs az osztaly tenyleges allapotaval. Hiszen a szandek es az allapot fizikai reprezentacioja elter minden olyan esetben, amikor az az osztaly tenylegesen csinal is valamit. A szoftvereket pedig azert keszitjuk, hogy csinaljanak valamit.
Igy aztan egy eszen jo okolszabaly tud lenni a mezok elrejtese. -
válasz
audiophile2!
#11339
üzenetére
-
Gyuri16
senior tag
válasz
audiophile2!
#11339
üzenetére
Hátránya hogy lassabb mert van közben egy metódus hívás.
Nem feltetlenul, compiler ilyen dolgokat tud optimalizalni.
Az elonyokrol mar irtak a tobbiek. Ha bovebben erdekel nezz utana valamilyen objektumorientalt programozasrol szolo konyvben/cikkben mirol szol az encapsulation.
Ezeknek az OOP elveknek az elonye altalaban akkor latszik, ha az ember valami bonyolultabbat csinal. Vagy ha az eredetileg egyszeru osztalyokba uj dolgot kell hozzaadni. Ilyenkor elonyos ha mar az elejetol ugy volt irva a kod, hogy kesobb konnyu legyen valtoztatni. Viszont nyilvan tulzasba esni se jo, felesleges tulbonyolitani egy egyszeru kodot csak azert, mert egyszer lehet hogy szukseg lesz ra.
Peldadhoz visszaterve: ha letrehoznal kesobb egy olyan osztalyt, ahol az x koordinata erteke csak egy kisebb intervallumbol lehet, akkor sokkal egyszerubb lesz megoldanod, ha a kodban mar van egy setter. Anelkul minden egyes helyet ahol uj erteket allitasz be at kell irnod.
-
válasz
audiophile2!
#11339
üzenetére
Ez a rossz, példa, mert általában nem ez a tipikus. Persze ebben a példában tök felesleges őrizni a paramétert.
-
Zsoxx
őstag
válasz
audiophile2!
#11333
üzenetére
Ráadásul a setterben kontroll alatt tarthatod a bemenő értékeket (nem enged akármilyen értéket átadni a változónak).
-
válasz
audiophile2!
#11333
üzenetére
De ha nem veszel fel hozzá akkor nem publikus.
Egy osztályod belső állapotát tárolod egy változóban. Biztos, jó ötlet, hogy boldog és boldogtalan módosítani tudja? Nem. Ha viszont ez az elvárt akkor ott a lehetőség rá.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- World of Tanks - MMO
- TCL LCD és LED TV-k
- 5.1, 7.1 és gamer fejhallgatók
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Anglia - élmények, tapasztalatok
- AliExpress tapasztalatok
- Genshin Impact (PC, PS4, Android, iOS)
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- BestBuy ruhás topik
- Formula-1
- További aktív témák...
- Playstation 5 Slim lemezes 2027 szeptemberig garancia!
- ÚJ! BONTATLAN! SAMSUNG Q800F 5.1.2 csatornás, hangprojektor/soundbar.
- Thinkpad T14 Gen4 14" FHD+ IPS i7-1365U 16GB 512GB NVMe ujjlolv IR kam gar
- LENOVO IdeaPad Slim 3 - i7-13620H
- Apple iPhone 12 Pro Max 128GB Akku: 89%, Normál, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garancia!
- 191 - Lenovo Legion 5 (15AKP10) - AMD Ryzen AI 7 350, RTX 5060 (ELKELT)
- RTX 5090-es, 5080-as stb... GAMER laptopok + dokkolók + licencek
- HIBÁTLAN iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3240
- Eladó ÚJ BONTATLAN Samsung Galaxy A17 5G 8/256GB / 24 hó jótállás
- Apple iPhone 15 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku:83%
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


