Hogy szokás az ilyen típusú osztályokat általánosságban hívni?
Olyan osztályról van szó, ami valamilyen adatbázisból (vagy most a konkrét esetben egy servicen keresztül json-ben) kap valamilyen formában adatokat, ezeket leválogatja és átalakítja ahogy szükség van rá, majd ezt visszaadja másnak (most például egy Xy objektumokból álló listát ad vissza).
Mapping? Vagy hogy nevezik az ilyeneket?
Ha értelmesen van megcsinálva, akkor ezt hívjuk DAO (Data Access Object) tervezési mintának. Ha szarul csináltad meg - például egy osztály kezel minden létező adatot - akkor hívhatod Blob-nak, ami kerülendő minta.
Ha egy ilyet jól akarsz megvalósítani, akkor az alkalmazásodnak nem szabad függenie az adatelérésről. Tehát ha megcsinálod mondjuk XML fájlokkal az adattárolást, aztán holnap azt mondják, hogy "ja bocs, adatbázisban kellene", akkor ne kelljen belenyúlni magába az alkalmazásba. Ha hallottál olyan dologról, hogy interfész, ezzel könnyedén elérheted. Csak ugye itt beleköphet a levesbe az, hogy sok osztályod ezt a DAO-t használni akarja, így rengeteg helyen paraméterezned kell. Erre is van megoldás, nézz utána, mi is az a Dependency Injection Container.
Egyébként a témáról van egy nagyon jó cikksorozat a refaktor.hu-n magyarul, amit érdemes elolvasnod:
Ha jól értem akkor azt írtad le amit egy serivce csinál: lekéri az adatokat valahonnan (DAO-tól vagy másik service-től), feldolgozza/szűri/átalakítja (jellemzően converter segítségével) és visszatér valami dto-val vagy dto-k listájával.
Ugyan az előző jól leírta a DAO lényegét de azért nem értek vele egyet mert: DAO nem hív service-t, csak serivce hívhat DAO-t, illetve DAO-ba nem szokás logikát írni, az jellemzően a service dolga.
" Ha jól értem akkor azt írtad le amit egy serivce csinál: lekéri az adatokat valahonnan (DAO-tól vagy másik service-től), feldolgozza/szűri/átalakítja (jellemzően converter segítségével) és visszatér valami dto-val vagy dto-k listájával. "
Lényegében igen. Egy http kéréssel lekér json formátumban adatokat, ezeket átalakítja dto-k listájává és ezt a listát használja más.
Nem csak egy ilyen van egyébként, viszont ha változna a bejövő adat formátuma, akkor újra kéne írni (bár nem igazán áll fenn ez a veszély).
Alapvetően én is a DAO-ra voksolnék.
Az, hogy alatta éppenséggel adatbázis van, vagy valamilyen hálózat kommunikáció, esetleg direkt fájlelérés, vagy kutyafüle, implementációs részlet, amely a kliens kód szempontjából lényegtelen - neki ez egy DAO, amitől meghatározott adatokat lehet kérni. Alapesetben az infrastructure-rétegbe tartozik.
BlaBlaDAO vagy BlaBlaDao a leggyakoribb, amivel találkozom.
Érdemes lehet megfontolni a Generic DAO Pattern bevetését, ha több ilyennel is dolgod van egy alkalmazáson belül. Az implementáció értelemszerűen nyelvfüggő.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!