„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
A lap eredeti címe: „https://vik.wiki/OOP_vizsga_kikérdező