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

