OOP vizsga kikérdező
A Monitor Object minta a Guarded Suspension minta segítségével valósítható meg.
- Igaz
- Hamis
Igaz-e az alábbi állítás?
Egy alkalmazás karbantarthatósága általában javul, ha sikerül csökkenteni a függőségek számát az alkalmazás egyes részei között.
- Igaz
- Hamis
Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?
Egy vasúti hálózatban vannak sínek, váltók és állomások. A hálózatban vonatok közlekednek. Egy mozdony különböző színű vagonokat húz, és a megfelelő színű vagont a megfelelő színű állomásra kell eljuttatni . Ha egy vonat egy állomáshoz ér, akkor azok az utasok , akik ugyanolyan színű kocsiban ülnek, mint az állomás színe, leszállnak, decsak akkor , ha minden előttük lévő (azaz a köztük és a mozdony között lévő) kocsi üres (vagyis nincs rajtuk utas). A játéknak akkor van vége , ha minden utast sikerült eljuttatni a megfelelő állomásra . A játékos veszít , ha két vonat összeütközik. Tekintsük a játék egy lehetséges megoldásaként az alábbi osztálydiagramot ! (Feltételezhetjük , hogy a privát attribútumokhoz tartoznak megfelelő getter-setter függvények , amelyeket az ábra nem jelöl .)
- Ne készítsünk típus- illetve képességmegkülönböztető függvényeket!
- Kerüljük a csak adattárolásra használt osztályokat!
- Egy osztály ne függjön a leszármazottaitól!
- Ne keverjük össze az objektumokat a leszármazottakkal!
- Az attribútumok legyenek privátok!
- A viselkedést modellezzük, ne a szerepeket!
- Egy osztály ne függjön az őt használó osztályoktól!
- Az öröklési hierarchia gyökerében absztrakt osztályok legyenek!
Párosítsa az alábbi feladatokat a nekik leginkább megfelelő mintával
Define a family of algorithms, put each of them into a separate class, and make them dynamically interchangeable.
- Adapter
- Decorator
- Flyweight
- Object Pool
- Strategy
Allow objects with incompatible interfaces to collaborate.
- Adapter
- Decorator
- Flyweight
- Object Pool
- Strategy
Attach additional responsibilities to an object dynamically.
- Adapter
- Decorator
- Flyweight
- Object Pool
- Strategy
Share common state to support large numbers of objects efficiently.
- Adapter
- Decorator
- Flyweight
- Object Pool
- Strategy
Keep a set of initialized objects ready to use rather than allocating and destroying them on demand.
- Adapter
- Decorator
- Flyweight
- Object Pool
- Strategy
Igaz-e az alábbi állítás?
Ha büdös kódot (code smell) találunk a szoftverben, akkor a szoftverben hiba (bug) van.
- Igaz
- Hamis
Igaz-e az alábbi állítás?
A refaktorálás nem változtatja meg a szoftver struktúráját, csak a szoftver viselkedését.
- Igaz
- Hamis
Mely kommentek ajánlottak a clean code szerint?
- Commented-out code
- TODO comment
- Amplification
- Journal comments
- Banner comments
- Public API documentation
Igaz-e az alábbi állítás?
Kritikus szakaszon belülről hívott virtuális függvények nem okoznak problémát a többszálú alkalmazásokban.
- Igaz
- Hamis
Tegye sorrendbe az alábbi API-tervezési lépéseket!
API definiálása 1 oldalban
- 1
- 2
- 3
- 4
- 5
Követelmények összegyűjtése
- 1
- 2
- 3
- 4
- 5
API implementálása
- 1
- 2
- 3
- 4
- 5
Példák írása az API-hoz
- 1
- 2
- 3
- 4
- 5
Use-case-ek írása
- 1
- 2
- 3
- 4
- 5
Teljesül-e az alábbi feltételek mellett a Liskov-elv?
A.foo post: 0 <= result<= 100
B.foo post: 10<= result<= 50
C.foo post: 0<= result<= 100
D.foo post: 20 <= result <= 40
- Teljesül
- Sérül
Helyes-e az alábbi C# kódrészlet kölcsönös kizárás szempontjából?
private const string locker = "LOCK" ;
public void DoSomestuff ( )
{
lock ( locker )
{
this.Work ( ) ;
}
}
- Helyes
- Helytelen
Teljesül-e az alábbi feltételek mellett a Liskov-elv?
A.foo pre: 20<= x <=50
B.foo pre: 10< x<= 90
C.foo pre: 0 <= x <= 100
D.foo pre: 10< x <= 100
- Teljesül
- Sérül
Igaz-e az alábbi állítás?
A YAGNI elv azt mondja, hogy ne használjunk tervezési mintákat.
- Igaz
- Hamis
Igaz-e az alábbi állítás?
Ha az ADP elv sérül, akkor a DIP elv segíthet a probléma megoldásában.
- Igaz
- Hamis
Mely tervezési minták kerültek alkalmazásra?
Egy vasúti hálózatban vannak sínek, váltók és állomások. A hálózatban vonatok közlekednek. Egy mozdony különböző színű vagonokat húz, és a megfelelő színű vagont a megfelelő színű állomásra kell eljuttatni . Ha egy vonat egy állomáshoz ér, akkor azok az utasok , akik ugyanolyan színű kocsiban ülnek, mint az állomás színe, leszállnak, decsak akkor , ha minden előttük lévő (azaz a köztük és a mozdony között lévő) kocsi üres (vagyis nincs rajtuk utas). A játéknak akkor van vége , ha minden utast sikerült eljuttatni a megfelelő állomásra . A játékos veszít , ha két vonat összeütközik. Tekintsük a játék egy lehetséges megoldásaként az alábbi osztálydiagramot ! (Feltételezhetjük , hogy a privát attribútumokhoz tartoznak megfelelő getter-setter függvények , amelyeket az ábra nem jelöl .)
- Singleton
- Abstract Factory
- Decorator
- Template Method
- Visitor
- Memento
- Observer
- Composite
Igaz-e az alábbi állítás?
Az OCP elv azt mondja, hogy legyünk nyitottak a módosításra, és zártak a bővítésre.
- Igaz
- Hamis
A Feature Envy code smell mely refaktorálási minták segítségével javítható?
- Introduce explaining variable
- Move method
- Replace magic numbers with symbolic constant
- Rename method
- Inline class
Egy háttérben futó számítás megszakítása
Az alábbi feladatot mely osztályok oldják meg Java esetén?
- Adapter
- Decorator
- Future
- Object
- Observer
- Singleton
- Strategy
Kölcsönös kizárás biztosítása és szálak értesítése
Az alábbi feladatot mely osztályok oldják meg Java esetén?
- Adapter
- Decorator
- Future
- Object
- Observer
- Singleton
- Strategy
Információ biztosítása háttérben futó számítás állapotáról
Az alábbi feladatot mely osztályok oldják meg Java esetén?
- Adapter
- Decorator
- Future
- Object
- Observer
- Singleton
- Strategy
Igaz-e az alábbi állítás?
Az LoD szerint az általunk létrehozott objektumok nem számítanak idegennek.
- Igaz
- Hamis
Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődésként!
A fenti OO tervezési heurisztikának melyik a leginkább megfelelő code smell vagy refaktorálási transzformáció?
- Data Class
- Extract Superclass
- Introduce Null Object
- Feature Envy
- Replace Type Code with Class
Kerüljük a csak adattárolásra használt osztályokat!
A fenti OO tervezési heurisztikának melyik a leginkább megfelelő code smell vagy refaktorálási transzformáció?
- Data Class
- Extract Superclass
- Introduce Null Object
- Feature Envy
- Replace Type Code with Class
Ne ellenőrizzük egy objektum típusát, helyette használjunk polimorfizmust!
A fenti OO tervezési heurisztikának melyik a leginkább megfelelő code smell vagy refaktorálási transzformáció?
- Data Class
- Extract Superclass
- Introduce Null Object
- Feature Envy
- Replace Type Code with Class
Minimalizáljuk az együttműködő osztályok közötti metódushívások számát!
A fenti OO tervezési heurisztikának melyik a leginkább megfelelő code smell vagy refaktorálási transzformáció?
- Data Class
- Extract Superclass
- Introduce Null Object
- Feature Envy
- Replace Type Code with Class
A közös adat és viselkedés olyan magasan legyen az öröklési hierarchiában, amilyen magasan csak lehet!
A fenti OO tervezési heurisztikának melyik a leginkább megfelelő code smell vagy refaktorálási transzformáció?
- Data Class
- Extract Superclass
- Introduce Null Object
- Feature Envy
- Replace Type Code with Class
Melyik elv segítségével lehet feloldani a csomagok közötti körkörös függőséget?
- SRP
- REP
- LSP
- DIP
Igaz vagy hamis az alábbi állítás?
A Visitor tervezési minta sérti az OCP elvet.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
A Visitor tervezési minta sérti a DIP elvet.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
Az öröklődés célja az ősosztályban definiált mezők újrahasznosítása.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
A laza csatolás előnyös a karbantarthatóság szempontjából.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
Egy szoftver akkor van jól tervezve, ha a stabil csomagok függnek az instabil csomagoktól.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
A többnyelvűséget támogató erőforrásfájlok sértik az SCP elvet.
- Igaz
- Hamis
Ki számít ismerősnek a Demeter-törvény szerint?
- Akire van asszociációnk
- Akit bejövő paraméterként kaptunk
- Aki létrehozott minket
- Aki velünk egy csomagban van
Tekintsük az alábbi csomagokat!
- B
- C
- A
- D
Tekintsük az alábbi osztálydiagramot!
Teljesül-e a bar függvényre a Liskov-elv?
- Teljesül
- Sérül
Tekintsük az alábbi osztálydiagramot!
Teljesül-e a foo függvényre a Liskov-elv?
- Teljesül
- Sérül
Igaz vagy hamis az alábbi állítás?
A refaktorálás célja a kódban lévő hibák (bugok) javítása.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
A refaktorálás során érdemes egyszerre több refaktorálási műveletet is elvégezni.
- Igaz
- Hamis
A Feature Envy code smell melyik refaktorálási minták segítségével javítható?
- Move method
- Change value to reference
- Rename method
- Introduce explaining variable
- Remove control flag
A Duplicated Code code smell melyik refaktorálási minták segítségével javítható?
- Substitute algorithm
- Extract class
- Extract method
- Inline method
- Duplicate observed data
Az alábbiak közül melyek jó függvénynevek a clean code elvek szerint?
- PickColor
- Manager
- Pick
- CP
- Copy
- F
- ColorPicker
Igaz vagy hamis az alábbi állítás?
A kivételek típusait a hívó objektum szemszögéből kell definiálni.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
Az alábbi kódrészlet megfelel a clean code elveknek.
public void Save(string message)
{
try
{
file.WriteLine(message);
}
catch (Exception ex)
{
// Oh, come on!
}
}
- Igaz
- Hamis
Tegye sorrendbe az alábbi API tervezési és megvalósítási lépéseket!
- Követelmények összegyűjtése
- Use-case-ek írása
- API definiálása
- Példák írása az API használatára
- API implementálása
A HTTP cookie-k milyen állapottárolást tesznek lehetővé?
- Állapot a szerver adatbázisában
- Állapot a szerver memóriájában
- Állapot a kliens oldalon
Mire szolgál a trading service?
- Szolgáltatások interfész alapján történő keresésére
- 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
Igaz vagy hamis az alábbi állítás?
Immutable objektumok használatával elkerülhető a védelmi másolatok készítése.
- Igaz
- Hamis
Igaz vagy hamis az alábbi állítás?
Az ImmutableArray<T> hatékonyabb, mint az ImmutableList<T>, ha ritkán módosítjuk, de sokszor iterálunk rajta.
- Igaz
- Hamis
Párosítsa az alábbi OO tervezési heurisztikákat a nekik leginkább megfelelő tervezési mintákkal!
Egy tervezési mintát legfeljebb egyszer használjon fel!
A tartalmazó objektum használja a tartalmazott objektumokat!
- Abstract Factory
- Decorator
- Interpreter
- Mediator
- Singleton
A tartalmazott objektumok ne beszélgessenek egymással közvetlenül!
- Abstract Factory
- Decorator
- Interpreter
- Mediator
- Singleton
A statikus szemantikát és kényszereket a modell struktúrájába építsük be!
- Abstract Factory
- Decorator
- Interpreter
- Mediator
- Singleton
Párosítsa az alábbi OO tervezési heurisztikákat a nekik leginkább megfelelő refaktorálási mintákkal és code smell-ekkel!
Egy refaktorálási mintát vagy code smell-t legfeljebb egyszer használjon fel!
A közös viselkedés és közös adat minél magasabban legyen az öröklési hierarchiában
- Refactor: Hide method
- Refactor: Pull up method
- Refactor: Replace type code with class
- Smell: Feature envy
- Smell: Inappropriate intimacy
Ne használjuk másik osztály nempublikus tagjait!
- Refactor: Hide method
- Refactor: Pull up method
- Refactor: Replace type code with class
- Smell: Feature envy
- Smell: Inappropriate intimacy
Minimalizáljuk az együttműködő osztályok között használt metódusok számát!
- Refactor: Hide method
- Refactor: Pull up method
- Refactor: Replace type code with class
- Smell: Feature envy
- Smell: Inappropriate intimacy
Minimalizáljuk a publikus metódusok számát!
- Refactor: Hide method
- Refactor: Pull up method
- Refactor: Replace type code with class
- Smell: Feature envy
- Smell: Inappropriate intimacy
Soha ne kódoljuk a típust enum vagy int értékekbe, használjunk helyette polimorfizmust!
- Refactor: Hide method
- Refactor: Pull up method
- Refactor: Replace type code with class
- Smell: Feature envy
- Smell: Inappropriate intimacy

