OOTerv Vizsga gyakorló 🚀
Melyik elv segítségével lehet feloldani a csomagok közötti körkörös függőséget?
- LSP
- SRP
- REP
- DIP
A Visitor tervezési minta sérti az OCP elvet. (Válassz ki egyet!)
- Igaz
- Hamis
A Visitor tervezési minta sérti a DIP elvet. (Válassz ki egyet!)
- Igaz
- Hamis
Az öröklődés célja az ősosztályban definiált mezők újrahasznosítása. (Válassz ki egyet!)
- Igaz
- Hamis
A laza csatolás előnyös a karbantarthatóság szempontjából. (Válassz ki egyet!)
- Igaz
- Hamis
Egy szoftver akkor van jól tervezve, ha a stabil csomagok függnek az instabil csomagoktól. (Válassz ki egyet!)
- Igaz
- Hamis
A többnyelvűséget támogató erőforrásfájlok sértik az SCP elvet. (Válassz ki egyet!)
- Igaz
- Hamis
Ki számít ismerősnek a Demeter-törvény szerint?
- Aki velünk egy a csomagban van
- Akit bejövő paraméterként kaptunk
- Aki létrehozott minket
- Akire van asszociációnk
Tekintsük az alábbi csomagokat:
Mely csomagok stabilak?

- A
- B
- C
- D
Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)
Teljesül-e a bar függvényre a Liskov-elv?

- Teljesül
- Sérül
Tekintsük az alábbi osztálydiagramot (Válassz ki egyet!)
Ismertek továbbá az alábbi feltételek: -A.foo pre: -100 <= x <= 100 -B.foo pre: -101 <= x <= 101 -C.foo pre: -200 <= x <= 150 -D.foo pre: -100 <= x <= 100 Teljesül-e a foo függvényre a Liskov-elv?

- Teljesül
- Sérül
Tekintsük az alábbi osztálydiagramot:
Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

- A gyakran változó dinamikus szemantikát és kényszereket külső viselkedésként implementáljuk!
- Asszociáció helyett preferáljuk a tartalmazást!
- Implementáljuk a sztenderd metódusokat!
- Soha ne kódoljuk a tipust enum vagy int értékekbe, használjunk helyette polimorfizmust!
- Egy osztály ne függjön a saját leszármazottaitól!
Tekintsük az alábbi osztálydiagramot:
Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

- Kerüljük a csak adattárolasra használt osztályokat!
- Az öröklési hierarchia gyökerében interfészek vagy absztrakt osztályok legyenek!
- Ne keverjük össze a leszármazottakat az objektumokkal! Vigyázzunk azokkal a leszármazottakkal, amelyekből csak egyetlen példányt hozunk létre!
- A viselkedést modellezzük, ne a szerepeket!
- Az öröklődés célja mindig a viselkedés újrahasznosítása!
A refaktorálás célja a kódban lévő hibák (bugok) javítása. (Válassz ki egyet!)
- Igaz
- Hamis
A refaktorálás során érdemes egyszerre több refaktorálási műveletet is elvégezni, hogy időt spóroljunk. (Válassz ki egyet!)
- Igaz
- Hamis
A Feature envy code smell melyik refaktorálási minták segítségével javítható?
- Remove control flag
- Change value to reference
- Introduce explaining variable
- Move method
- Rename method
A Duplicated code code smell melyik refaktorálási minták segítségével javítható?
- Substitute algorithm
- Extract method
- Inline method
- Extract class
- Duplicate observed data
Az alábbiak közül melyek jó függvénynevek a clean code elvek szerint?
- Manager
- F
- PickColor
- Copy
- ColorPicker
- Pick
- CP
A kivételek típusait a hívó objektum szemszögéből kell definiálni. (Válassz ki egyet!)
- Igaz
- Hamis
A HTTP cookie-k milyen állapottárolást tesznek lehetővé? (Válassz ki egyet!)
- Állapot a szerver adatbázisában
- Állapot a szerver memóriájában
- Állapot a kliens oldalon
Mire szolgál a trading service? (Válassz ki egyet!)
- Tőzsdei szolgáltatások szabványos interfészleírója
- Szolgáltatások logikai név alapján történő keresésére
- Szolgáltatások használati díjának adminisztrálására
- Szolgáltatások interfész alapján történő keresésére
Immutable objektumok használatával elkerülhető a védelmi másolatok készítése. (Válassz ki egyet!)
- Igaz
- Hamis
Az ImmutableArray<T> hatékonyabb, mint az ImmutableList<T>, ha a gyűjteményt ritkán módositjuk, de sokszor kell rajta végigiterálnunk (Válassz ki egyet!)
- Igaz
- Hamis
Melyik elv segítségével lehet feloldani a csomagok közötti körkörös függőséget?
- SDP
- ISP
- LSP
- REP
A Decorator tervezési minta sérti az OCP elvet. (Válassz ki egyet!)
- Igaz
- Hamis
Az Abstract Factory tervezési minta sérti az OCP elvet. (Válassz ki egyet!)
- Igaz
- Hamis
Egy osztály interfésze ugyanaz, mint az általa implementált interfészek halmaza. (Válassz ki egyet!)
- Igaz
- Hamis
Egy szoftver tervezése során mindig minden lehetséges követelményváltozásra fel kell készülni. (Válassz ki egyet!)
- Igaz
- Hamis
A DbC elv szerint a prekondíciókat nem szabad erősíteni. (Válassz ki egyet!)
- Igaz
- Hamis
A DIP elv egy lehetséges megfogalmazása az, hogy absztrakcióktól függjünk. (Válassz ki egyet!)
- Igaz
- Hamis
Ki számít ismerősnek a Demeter-törvény szerint?
- Aki létrehozott minket
- Akit mi hoztunk létre
- Aki ismer minket
- Aki velünk egy a csomagban van
Tekintsük az alábbi csomagokat:
Mely csomagok instabilak?

- A
- B
- C
- D
Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)
Teljesül-e a bar függvényre a Liskov-elv?

- Teljesül
- Sérül
Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)
Ismertek továbbá az alábbi feltételek: -A.foo pre: -100 <= x <= 100 -B.foo pre: -101 <= x <= 101 -C.foo pre: -200 <= x <= 150 -D.foo pre: -110 <= x <= 110 Teljesül-e a foo függvényre a Liskov-elv?

- Teljesül
- Sérül
Tekintsük az alábbi osztálydiagramot:
Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

- Egy osztály ne függjön a saját leszármazottaitól!
- Ne keverjük össze a statikus és a dinamikus kényszereket!
- Implementáljuk a sztenderd metódusokat!
- Kerüljük a csak adattárolásra használt osztályokat!
- Kerüljük az isten osztályokat!
Tekintsük az alábbi osztálydiagramot:
Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

- Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődéssel!
- Ne keverjük össze a leszármazottakat az objektummal! Vigyázzunk azokkal a leszármazottakkal, amelyekből csak egyetlen példányt hoztunk létre!
- Ne készítsünk függvényeket a típusok illetve a képességek megkülönböztetésére, használjunk helyette polimorfizmust!
- A viselkedést modellezzük, ne a szerepeket!
- Az öröklési hierarchia gyökerében interfészek vagy absztrakt osztályok legyenek!
Ha büdös kódot (code smell) találunk a szotverben, akkor a szoftverben hiba (bug) van. (Válassz ki egyet!)
- Igaz
- Hamis
A refaktorálás nem változtatja meg a szoftver struktúráját, csak a szoftver viselkedését. (Válassz ki egyet!)
- Igaz
- Hamis
A Long method code smell melyik refaktorálási minták segítségével javítható?
- Rename method
- Decompose conditional
- Encapsulate field
- Introduce assertion
- Inline method
Az Inappropiate intimacy code smell melyik refaktorálási minták segítségével javítható?
- Replace delegation with inheritance
- Inline method
- Hide method
- Remove control flag
- Move method
Az alábbiak közül melyek jó osztálynevek a clean code elvek szerint?
- Move
- MPoint
- SyntaxVisitor
- Student
- SqlStatementFromHardCodedValues
- Info
- MP
Ne használjunk unchecked kivételeket! (Válassz ki egyet!)
- Igaz
- Hamis
Az alábbiak közül melyek szerepelnek az API tervezési és a clean code témakörben is?
- Válasszunk megfelelő alapértelmezett értékeket
- Használjunk beszédes neveket
- Egy függvény legfeljebb 20 soros legyen
- Kerüljük a hosszú paraméterlistákat
- Kerüljük a mellékhatásokat
- Kerüljük a rövidítéseket
- Ha egy függvény előfeltételei sérülnek, azonnal dobjunk kivételt a függvényből
- Egy függvény egyszerre csak egy absztrakciós szinten dolgozzon
Immutable objektumok használata során nincs szükség klónozásra és másoló konstruktorra (Válassz ki egyet!)
- Igaz
- Hamis
Egy ImmutableList<T> foreach ciklussal történő bejárása kevésbé hatékony, mint egy List<T> bejárása. (Válassz ki egyet!)
- Igaz
- Hamis
Az alábbiak közül melyek szerepelnek a Clean Code és az API tervezési elvek között is?
- Functions should be small
- Stepdown rule
- Avoid abbreviations
Az alábbiak közül melyek jó nevek ciklusváltozónak a Clean Code elvek szerint?
- accountIterator
- bookIdentifier
- i
- a
Az alábbiak közül mely elemek részei a WSDL-nek?
- api
- envelope
- binding
- types
- header
Az immutable objektumok szálbiztosak. (Válassz ki egyet!)
- Igaz
- Hamis
A Visitor tervezési minta sérti az ISP elvet. (Válassz ki egyet!)
- Igaz
- Hamis
Az alkalmazásunk lefagyott, és a Windows szerint a program nem válaszol. Melyik mintát használtuk rosszul?
- Reactor
- Proactor
- AutoResetEvent
- ManualResetEvent
- Cancellation token
- Asynchronous completion token
Egy szálbiztos FIFO-t kell implementálnunk, amely tetszőlegesen sok üzenetet tartalmazhat. Melyik mintával lehet megoldani a szálbiztosságot?
- Cancellation token
- GlobalContext
- Guarded suspension
- ThreadLocalContext
Atomi műveletek kombinációja is atomi művelet. (Válassz ki egyet!)
- Igaz
- Hamis
A C# nyelv async-await megoldása a Proactor mintát követi (Válassz ki egyet!)
- Igaz
- Hamis
A böngészőben a GMail felületen egy levelet olvasunk. Sem az egérrel, sem a billentyűzettel nem végzünk művelet, mégis a GMail értesít minket, hogy időközben új levelünk érkezett. Melyik minta valósítja ezt meg?
- Scheduler
- ManualResetEvent
- Cancellation token
- Proactor
- AutoResetEvent
- Reactor
A Reactor minta lényege, hogy aszinkron módon reagálunk a kívülről érkező eseményekre (Válassz ki egyet!)
- Igaz
- Hamis
Elosztott objektumorientáltság esetén a szöveges sorosítás ugyan lassabb, mint a bináris, de jobb kompatibilitást biztosít. (Válassz ki egyet!)
- Igaz
- Hamis
A string literálokat tartalmazó erőforrásfájlok a DRY elv betartását segítik (Válassz ki egyet!)
- Igaz
- Hamis
A REST által támogatott HTTP igék a következők: GET, CREATE, UPDATE, DELETE (Válassz ki egyet!)
- Igaz
- Hamis
Az LoD szerint a függvényparaméterként kapott objektumok 'idegennek' számítanak (Válassz ki egyet!)
- Igaz
- Hamis
Elosztott objektumorientáltság esetén a távoli hívás paraméterei shallow-copy módon adódnak át (Válassz ki egyet!)
- Igaz
- Hamis
A Guarded suspension minta Monitor object használatának segítségével implementálható (Válassz ki egyet!)
- Igaz
- Hamis
A böngésző letölti a szerverről a HTML oldalt, majd külön szálakon a háttérben elkezdi letölteni a képeket is. Időközben a felhasználó bezárja az oldalt. Melyik mintát kell ilyenkor a böngészőnek bevetnie, hogy ne töltse tovább feleslegesen a képeket?
- AutoResetEvent
- Asynchronous completion token
- Cancellation token
- Proactor
- ManualResetEvent
- Reactor
Teljesül-e a Liskov-elv, ha X bar() függvénye 0..10 közötti értékeket vár, míg Y bar() függvénye -10..10 közötti értékeket vár? (Vegyük úgy, hogy a feltételben nem szereplő elemek teljesítik a Liskov-elvet!) (Válassz ki egyet!)

- Teljesül
- Sérül
A WS-Addressing szabvány a SOAP üzenetkre két speciális fejlécet is definiál: MessageId és RelatesTo. A MessageId egy egyedi azonosító, amely a klienstől érkező kérésben szerepel. A szervernek a válaszüzenet RelatesTo fejlécében vissza kell küldenie a MessageId értékét. Melyik mintának felel meg ez a megoldás?
- Cancellation token
- Active object
- AutoResetEvent
- ManualResetEvent
- Scheduler
- Future
- Proactor
- Reactor
- Asynchronous completion token
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'A viselkedést modellezzük, ne a szerepeket!'

- Frame
- House
- Lamp
- Cop
- StopTable
- Player
Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)
Igaz-e, hogy az alábbi feltételekkel teljesül a Liskov-elv? -Base.Calculate pre: 0 <= x <= 100 -Derived.Calculate pre: 20 <= x <= 50

- Igaz
- Hamis
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'A viselkedést modellezzük, ne a szerepeket!'

- Worker
- Asteroid
- Egyik felkínált opció sem sérti a heurisztikát
- Settler
- Map
- Robot
- Sun
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Asszociáció helyett preferáljuk a tartalmazást!'

- Field-Character
- Field-Asteroid
- Character-Asteroid
- Egyik felkínált opció sem sérti meg a heurisztikát
- Field-Sun
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Kerüljük a csak adattárolásra használt osztályokat!'

- Worker
- Asteroid
- Egyik felkínált opció sem sérti a heurisztikát
- Settler
- Map
- Robot
- Sun
Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)
Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a LoD elv.'

- Igaz
- Hamis
Tekintsük az alábbi osztálydiagramot:
Az alábbiak közül mely OO tervezési heurisztikát sérti a diagram?

- Az öröklődés helyett preferáljuk csak a tartalmazást!
- Kerüljük a csak adattárolásra használt osztályokat!
- Egy osztály ne függjön a saját leszármazottjaitól!
- Az attribútumok mindig legyenek privátok!
- A tartalmazott objektumok ne beszélgessenek egymással közvetlenül!
- Mindegyik felkínált heurisztika teljesül
- Implementáljuk a sztenderd metódusokat!
Tekintsük az alábbi osztálydiagramot:
Válassza ki, hogy az alábbiak közül mely osztályokat kellett volna egy közös ősből származniuk!

- Hollow
- Radioactive
- AISolarStorm
- AIRobot
- Settler
Teljesül-e a Liskov-elv, ha U a V leszármazottja? (Válassz ki egyet!)

- Teljesül
- Sérül
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Modellezésnél maradjunk a rendszer határain belül!'

- Iron
- Ice
- Worker
- Asteroid
- Carbon
- Material
- Robot
- Settler
- Radioactive
- Game
- SolarSystem
- Egyik felkínált opció sem sérti a heurisztikát
- None
Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)
Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a LoD elv.'

- Igaz
- Hamis
Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)
Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a LSP elv.'

- Igaz
- Hamis
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'A viselkedést modellezzük, ne a szerepeket!'

- Iron
- Ice
- Worker
- Asteroid
- Carbon
- Material
- Robot
- Settler
- Radioactive
- Game
- SolarSystem
- Egyik felkínált opció sem sérti a heurisztikát
- None
Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)
Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a TDA elv.'

- Igaz
- Hamis
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Ne keverjük össze a statikus és a dinamikus kényszereket!'

- Space
- Egyik felkínált opció sem sérti a heurisztikát
- GameController
- Moveable
- Empty
- Gameplayer
- Settler
- Robot
Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)
Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a TDA elv.'

- Igaz
- Hamis
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Kerüljük az Isten-osztályokat!'

- Settler
- Gameplayer
- Egyik felkínált opció sem sérti a heurisztikákat
- Robot
- Radioactive
- Moveable
- Empty
- Asteroid
- GameController
- NormalAsteroid
- Space
Tekintsük az alábbi osztálydiagramot:
Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Soha ne kódoljuk a típust (pl. enum vagy int értékekbe), használjunk helyette polimorfizmust!'

- Resources
- Asteroid
- Field
- Settler
- Sun
- Character
- Robot
- Egyik felkínált opció sem sérti a heurisztikát
Made with ❤︎ by Adam Szabados (2023)