„OOP vizsga kikérdező” változatai közötti eltérés
rossz volt a kép a feladatban |
Nincs szerkesztési összefoglaló |
||
| 546. sor: | 546. sor: | ||
# Smell: Feature envy | # Smell: Feature envy | ||
# Smell: Inappropriate intimacy | # Smell: Inappropriate intimacy | ||
== Igaz vagy hamis az alábbi állítás? == | |||
A Decorator tervezési minta sérti az OCP elvet. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis az alábbi állítás? == | |||
Az Abstract Factory tervezési minta sérti az OCP elvet. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis az alábbi állítás? == | |||
Egy osztály interfésze ugyanaz, mint az általa implementált interfészek halmaza. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis az alábbi állítás? == | |||
Egy szoftver tervezése során mindig minden lehetséges követelményváltozásra fel kell készülni. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis az alábbi állítás? == | |||
A DbC elv szerint a prekondíciókat nem szabad erősíteni. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis az alábbi állítás? == | |||
A DIP elv egy lehetséges megfogalmazása az, hogy absztrakcióktól függjünk. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Igaz | |||
# Hamis | |||
== Ki számít ismerősnek a Demeter-törvény szerint? == | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# Aki létrehozott minket | |||
# Aki velünk egy a csomagban van | |||
# Aki ismer minket | |||
# Akit mi hoztunk létre | |||
== Tekintsük az alábbi csomagokat! == | |||
Mely csomagok instabilak? | |||
[[Fájl:Oop vizsga csomagok1.png|Keret]] | |||
{{Kvízkérdés|típus=több|válasz=1,3}} | |||
# A | |||
# C | |||
# D | |||
# B | |||
== Tekintsük az alábbi osztálydiagramot! == | |||
Teljesül-e a bar függvényre a Liskov-elv? | |||
[[Fájl:Oop vizsga liskov 3.png|Keret]] | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Teljesül | |||
# Sérül | |||
== 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! | |||
Az öröklődés helyett preferáljuk a tartalmazást! | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Adapter | |||
# Prototype | |||
# Strategy | |||
# Template Method | |||
# Singleton | |||
Az öröklődés célja mindig a viselkedés újrahasznosítása! | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# Adapter | |||
# Prototype | |||
# Strategy | |||
# Template Method | |||
# Singleton | |||
A gyakran változó dinamikus szemantikát és kényszereket külső viselkedésként implementáljuk! | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
# Adapter | |||
# Prototype | |||
# Strategy | |||
# Template Method | |||
# Singleton | |||
== Tekintsük az alábbi osztálydiagramot (követelmények mutatása/elrejtése)! == | |||
Mely OO tervezési heurisztikák teljesülnek az alábbiak közül? | |||
[[Fájl:OOP vizsga varvedelem.png|Keret]] | |||
{{Kvízkérdés|típus=több|válasz=3,4,5}} | |||
# Implementáljuk a sztenderd metódusokat! | |||
# Kerüljük a csak adattárolásra használt osztályokat! | |||
# Egy osztály ne függjön a saját leszármazottaitól! | |||
# Kerüljük az isten-osztályokat! | |||
# Ne keverjük össze a statikus és a dinamikus kényszereket! | |||
== Tekintsük az alábbi osztálydiagramot (követelmények mutatása/elrejtése)! == | |||
Mely OO tervezési heurisztikák teljesülnek az alábbiak közül? | |||
[[Fájl:OOP vizsga varvedelem.png|Keret]] | |||
{{Kvízkérdés|típus=több|válasz=1,2,3,4}} | |||
# Ne készítsünk függvényeket a típusok vagy képességek megkülönböztetésére, használjunk polimorfizmust! | |||
# Ne keverjük össze a leszármazottakat az objektumokkal! | |||
# Az öröklési hierarchia gyökerében interfészek vagy absztrakt osztályok legyenek! | |||
# Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődéssel! | |||
# A viselkedést modellezzük, ne a szerepeket! | |||
== 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! | |||
Kerüljük az isten-osztályokat! | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
# Smell: Feature envy | |||
# Smell: Refused bequest | |||
# Smell: Large class | |||
# Refactor: Introduce null object | |||
# Refactor: Encapsulate field | |||
Soha ne vizsgáljuk egy objektum típusát, használjunk helyette polimorfizmust! | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Smell: Feature envy | |||
# Smell: Downcasting | |||
# Smell: Large class | |||
# Refactor: Introduce null object | |||
# Refactor: Encapsulate field | |||
Ha az ős működését üres implementációval írjuk felül, akkor hibás az öröklési hierarchia! | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Smell: Feature envy | |||
# Smell: Refused bequest | |||
# Smell: Large class | |||
# Refactor: Introduce null object | |||
# Refactor: Encapsulate field | |||
Egy osztály ne függjön az őt használó osztályoktól! | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Smell: Feature envy | |||
# Smell: Refused bequest | |||
# Smell: Large class | |||
# Refactor: Introduce null object | |||
# Refactor: Encapsulate field | |||
Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődéssel! | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# Smell: Feature envy | |||
# Smell: Refused bequest | |||
# Smell: Large class | |||
# Refactor: Introduce null object | |||
# Refactor: Encapsulate field | |||
== Igaz vagy hamis az alábbi állítás? == | |||
Ha büdös kódot (code smell) találunk a szoftverben, akkor a szoftverben hiba (bug) van. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis 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. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== A Long Method code smell melyik refaktorálási minta segítségével javítható? == | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# Inline method | |||
# Encapsulate field | |||
# Rename method | |||
# Decompose conditional | |||
# Introduce assertion | |||
== A Inappropriate Intimacy code smell mely refaktorálási minták segítségével javítható? == | |||
{{Kvízkérdés|típus=több|válasz=1,2,5}} | |||
# Inline method | |||
# Move method | |||
# Hide method | |||
# Remove control flag | |||
# Replace delegation with inheritance | |||
== Az alábbiak közül melyek jó osztálynevek a clean code elvek szerint? == | |||
{{Kvízkérdés|típus=több|válasz=1,6}} | |||
# Student | |||
# MPoint | |||
# MP | |||
# SqlStatementFromHardCodedValuesAndSafeDataTypes | |||
# Move | |||
# Info | |||
# SyntaxVisitor | |||
== Igaz vagy hamis az alábbi felszólítás a clean-code szerint? == | |||
Ne használjunk unchecked kivételeket! | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis az alábbi állítás? == | |||
Az alábbi kódrészlet megfelel a clean code elveknek: | |||
public int Max(List<int> values) | |||
{ | |||
if (values == null) return -1; | |||
if (values.Count == 0) return -2; | |||
int result = values[0]; | |||
for (int i = 1; i < values.Count; i++) | |||
{ | |||
if (values[i] > result) result = values[i]; | |||
} | |||
return result; | |||
} | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Elosztott kommunikáció során mely minta jellemző az alábbi állításokra? == | |||
Szerver objektum példányosítása | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Adapter | |||
# Proxy | |||
Függvényhívás hálózati kéréssé alakítása | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Adapter | |||
# Proxy | |||
Beérkező hálózati kérés függvényhívássá alakítása | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Adapter | |||
# Proxy | |||
Úgy viselkedik, mintha lokális szerver objektum lenne | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Adapter | |||
# Proxy | |||
A szerver megkeresése | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Adapter | |||
# Proxy | |||
Paraméterek üzenetté sorosítása | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Adapter | |||
# Proxy | |||
Csatlakozás a szerverhez | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Adapter | |||
# Proxy | |||
== Elosztott kommunikáció során mely minta jellemző az alábbi állításra? == | |||
Visszatérési érték üzenetté sorosítása | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Adapter | |||
# Proxy | |||
== Elosztott kommunikáció során mely minta jellemző az alábbi állításra? == | |||
Kliens kapcsolatok fogadása | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Adapter | |||
# Proxy | |||
== Elosztott kommunikáció során mely minta jellemző az alábbi állításra? == | |||
Implementálja a szerver interfészét | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Adapter | |||
# Proxy | |||
== Igaz vagy hamis az alábbi állítás? == | |||
Immutable objektumok használata során nincs szükség klónozásra és másoló konstruktorra. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Igaz | |||
# Hamis | |||
== Igaz vagy hamis az alábbi állítás? == | |||
Egy ImmutableList<T> foreach ciklussal történő bejárása kevésbé hatékony, mint egy List<T> bejárása. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Igaz | |||
# Hamis | |||
== Az alábbiak közül melyek szerepelnek az API tervezési és a clean code témakörben is? == | |||
{{Kvízkérdés|típus=több|válasz=1,2,5,7,8}} | |||
# Kerüljük a hosszú paraméterlistákat | |||
# Használjunk beszédes neveket | |||
# Egy függvény egyszerre csak egy absztrakciós szinten dolgozzon | |||
# Egy függvény legfeljebb 20 soros legyen | |||
# Kerüljük a mellékhatásokat | |||
# Válasszunk megfelelő alapértelmezett értékeket | |||
# 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 | |||