„OOP vizsga kikérdező” változatai közötti eltérés
Új oldal, tartalma: „{{Kvízoldal |cím=Tesztkérdések |pontozás=- }} == A Monitor Object minta a Guarded Suspension minta Finish review Mark 1.00 out of segítségével valósítható meg. == alma alma {{Kvízkérdés|típus=egy|válasz=2}} # Igaz # Hamis == Egy alkalmazáskarbantartható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 == {{Kvízkérdés|típus=egy|válasz=1}} # Igaz # Hamis” |
UwU |
||
| 3. sor: | 3. sor: | ||
|pontozás=- | |pontozás=- | ||
}} | }} | ||
== A Monitor Object minta a Guarded Suspension minta | == A Monitor Object minta a Guarded Suspension minta segítségével valósítható meg. == | ||
{{Kvízkérdés|típus=egy|válasz=2}} | {{Kvízkérdés|típus=egy|válasz=2}} | ||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Igaz | |||
# Hamis | |||
== Mely OO tervezési heurisztikák teljesülnek az alábbiak közül? == | |||
[[Fájl:Oop vizsga vasut 1.png|Keret]] | |||
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 .) | |||
{{Kvízkérdés|típus=több|válasz=1,2,3,6}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=5}} | |||
# Adapter | |||
# Decorator | |||
# Flyweight | |||
# Object Pool | |||
# Strategy | |||
Allow objects with incompatible interfaces to collaborate. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Adapter | |||
# Decorator | |||
# Flyweight | |||
# Object Pool | |||
# Strategy | |||
Attach additional responsibilities to an object dynamically. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Adapter | |||
# Decorator | |||
# Flyweight | |||
# Object Pool | |||
# Strategy | |||
Share common state to support large numbers of objects efficiently. | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
# Adapter | |||
# Decorator | |||
# Flyweight | |||
# Object Pool | |||
# Strategy | |||
Keep a set of initialized objects ready to use rather than allocating and destroying them on demand. | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Mely kommentek ajánlottak a clean code szerint? == | |||
{{Kvízkérdés|típus=több|válasz=2,3,6}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | |||
# Hamis | |||
== Tegye sorrendbe az alábbi API-tervezési lépéseket! == | |||
API definiálása 1 oldalban | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
# 1 | |||
# 2 | |||
# 3 | |||
# 4 | |||
# 5 | |||
Követelmények összegyűjtése | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# 1 | |||
# 2 | |||
# 3 | |||
# 4 | |||
# 5 | |||
API implementálása | |||
{{Kvízkérdés|típus=egy|válasz=5}} | |||
# 1 | |||
# 2 | |||
# 3 | |||
# 4 | |||
# 5 | |||
Példák írása az API-hoz | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# 1 | |||
# 2 | |||
# 3 | |||
# 4 | |||
# 5 | |||
Use-case-ek írása | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# 1 | |||
# 2 | |||
# 3 | |||
# 4 | |||
# 5 | |||
== Teljesül-e az alábbi feltételek mellett a Liskov-elv? == | |||
[[Fájl:Oop vizsga liskov 1.png|Keret]] | |||
A.foo post: 0 <= result<= 100 | |||
B.foo post: 10<= result<= 50 | |||
C.foo post: 0<= result<= 100 | |||
D.foo post: 20 <= result <= 40 | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# 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 ( ) ; | |||
} | |||
} | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Helyes | |||
# Helytelen | |||
== Teljesül-e az alábbi feltételek mellett a Liskov-elv? == | |||
[[Fájl:Oop vizsga liskov 1.png|Keret]] | |||
A.foo pre: 20<= x <=50 | |||
B.foo pre: 10< x<= 90 | |||
C.foo pre: 0 <= x <= 100 | |||
D.foo pre: 10< x <= 100 | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# Igaz | |||
# Hamis | |||
== Mely tervezési minták kerültek alkalmazásra? == | |||
[[Fájl:Oop vizsga vasut 1.png|Keret]] | |||
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 .) | |||
{{Kvízkérdés|típus=több|válasz=1,3,5,7}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# Igaz | # Igaz | ||
# Hamis | # Hamis | ||
== Egy | == A Feature Envy code smell mely refaktorálási minták segítségével javítható? == | ||
{{Kvízkérdés|típus=több|válasz=2,5}} | |||
# 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? | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
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? | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# 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? | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
# 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. | |||
{{Kvízkérdés|típus=egy|válasz=1}} | {{Kvízkérdés|típus=egy|válasz=1}} | ||
# Igaz | # Igaz | ||
# Hamis | # 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ó? {{Kvízkérdés|típus=egy|válasz=3}} | |||
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ó? | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# 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ó? {{Kvízkérdés|típus=egy|válasz=5}} | |||
# 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ó? {{Kvízkérdés|típus=egy|válasz=4}} | |||
# 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ó? {{Kvízkérdés|típus=egy|válasz=2}} | |||
# Data Class | |||
# Extract Superclass | |||
# Introduce Null Object | |||
# Feature Envy | |||
# Replace Type Code with Class | |||