„OOP vizsga kikérdező” változatai közötti eltérés

A VIK Wikiből
UwU
Nincs szerkesztési összefoglaló
 
(8 közbenső módosítás ugyanattól a felhasználótól nincs mutatva)
5. sor: 5. sor:
== A Monitor Object minta a Guarded Suspension minta segítségével valósítható meg. ==
== 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
# Igaz
# Hamis
# Hamis
12. sor: 11. sor:
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.
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}}
{{Kvízkérdés|típus=egy|válasz=1}}
# Igaz
# Igaz
# Hamis
# Hamis
20. sor: 18. sor:
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 .)
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}}
{{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!
# 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!
# Kerüljük a csak adattárolásra használt osztályokat!
33. sor: 30. sor:
Define a family of algorithms, put each of them into a separate class, and make them dynamically interchangeable.
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}}
{{Kvízkérdés|típus=egy|válasz=5}}
# Adapter
# Adapter
# Decorator
# Decorator
42. sor: 38. sor:
Allow objects with incompatible interfaces to collaborate.
Allow objects with incompatible interfaces to collaborate.
{{Kvízkérdés|típus=egy|válasz=1}}
{{Kvízkérdés|típus=egy|válasz=1}}
# Adapter
# Adapter
# Decorator
# Decorator
51. sor: 46. sor:
Attach additional responsibilities to an object dynamically.
Attach additional responsibilities to an object dynamically.
{{Kvízkérdés|típus=egy|válasz=2}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Adapter
# Adapter
# Decorator
# Decorator
60. sor: 54. sor:
Share common state to support large numbers of objects efficiently.
Share common state to support large numbers of objects efficiently.
{{Kvízkérdés|típus=egy|válasz=3}}
{{Kvízkérdés|típus=egy|válasz=3}}
# Adapter
# Adapter
# Decorator
# Decorator
69. sor: 62. sor:
Keep a set of initialized objects ready to use rather than allocating and destroying them on demand.
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}}
{{Kvízkérdés|típus=egy|válasz=4}}
# Adapter
# Adapter
# Decorator
# Decorator
79. sor: 71. sor:
Ha büdös kódot (code smell) találunk a szoftverben, akkor a szoftverben hiba (bug) van.
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}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Igaz
# Hamis
# Hamis
86. sor: 77. sor:
A refaktorálás nem változtatja meg a szoftver struktúráját, csak a szoftver viselkedését.
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}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Igaz
# Hamis
# Hamis
92. sor: 82. sor:
== Mely kommentek ajánlottak a clean code szerint? ==
== Mely kommentek ajánlottak a clean code szerint? ==
{{Kvízkérdés|típus=több|válasz=2,3,6}}
{{Kvízkérdés|típus=több|válasz=2,3,6}}
# Commented-out code
# Commented-out code
# TODO comment
# TODO comment
103. sor: 92. sor:
Kritikus szakaszon belülről hívott virtuális függvények nem okoznak problémát a többszálú alkalmazásokban.
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}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Igaz
# Hamis
# Hamis
111. sor: 99. sor:
API definiálása 1 oldalban
API definiálása 1 oldalban
{{Kvízkérdés|típus=egy|válasz=3}}
{{Kvízkérdés|típus=egy|válasz=3}}
# 1
# 1
# 2
# 2
117. sor: 104. sor:
# 4
# 4
# 5
# 5
Követelmények összegyűjtése
Követelmények összegyűjtése
{{Kvízkérdés|típus=egy|válasz=1}}
{{Kvízkérdés|típus=egy|válasz=1}}
# 1
# 1
# 2
# 2
125. sor: 112. sor:
# 4
# 4
# 5
# 5
API implementálása
API implementálása
{{Kvízkérdés|típus=egy|válasz=5}}
{{Kvízkérdés|típus=egy|válasz=5}}
# 1
# 1
# 2
# 2
136. sor: 123. sor:
Példák írása az API-hoz
Példák írása az API-hoz
{{Kvízkérdés|típus=egy|válasz=4}}
{{Kvízkérdés|típus=egy|válasz=4}}
# 1
# 1
# 2
# 2
145. sor: 131. sor:
Use-case-ek írása
Use-case-ek írása
{{Kvízkérdés|típus=egy|válasz=2}}
{{Kvízkérdés|típus=egy|válasz=2}}
# 1
# 1
# 2
# 2
163. sor: 148. sor:
D.foo post: 20 <= result <= 40
D.foo post: 20 <= result <= 40
{{Kvízkérdés|típus=egy|válasz=2}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Teljesül
# Teljesül
# Sérül
# Sérül


== Helyes-e az alábbi C# kódrészlet kölcsönös kizárás szempontjábó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 ( )
  private const string locker = "LOCK" ;
{
  public void DoSomestuff ( )
  lock ( locker )
   {
   {
       this.Work ( ) ;
       lock ( locker )
      {
        this.Work ( ) ;
      }
   }
   }
}
 
{{Kvízkérdés|típus=egy|válasz=2}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Helyes
# Helyes
# Helytelen
# Helytelen
192. sor: 177. sor:
D.foo pre: 10< x <= 100
D.foo pre: 10< x <= 100
{{Kvízkérdés|típus=egy|válasz=1}}
{{Kvízkérdés|típus=egy|válasz=1}}
# Teljesül
# Teljesül
# Sérül
# Sérül
199. sor: 183. sor:
A YAGNI elv azt mondja, hogy ne használjunk tervezési mintákat.
A YAGNI elv azt mondja, hogy ne használjunk tervezési mintákat.
{{Kvízkérdés|típus=egy|válasz=2}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Igaz
# Hamis
# Hamis
206. sor: 189. sor:
Ha az ADP elv sérül, akkor a DIP elv segíthet a probléma megoldásában.
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}}
{{Kvízkérdés|típus=egy|válasz=1}}
# Igaz
# Igaz
# Hamis
# 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? ==
== 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.
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}}
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Igaz
# Hamis
# Hamis
233. sor: 200. sor:
== A Feature Envy code smell mely refaktorálási minták segítségével javítható? ==
== 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}}
{{Kvízkérdés|típus=több|válasz=2,5}}
# Introduce explaining variable
# Introduce explaining variable
# Move method
# Move method
243. sor: 209. sor:
Az alábbi feladatot mely osztályok oldják meg Java esetén?
Az alábbi feladatot mely osztályok oldják meg Java esetén?
{{Kvízkérdés|típus=egy|válasz=3}}
{{Kvízkérdés|típus=egy|válasz=3}}
 
# Adapter
Adapter
# Decorator
Decorator
# Future
Future
# Object
Object
# Observer
Observer
# Singleton
Singleton
# Strategy
Strategy


== Kölcsönös kizárás biztosítása és szálak értesítése ==
== 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?
Az alábbi feladatot mely osztályok oldják meg Java esetén?
{{Kvízkérdés|típus=egy|válasz=4}}
{{Kvízkérdés|típus=egy|válasz=4}}
# Adapter
# Adapter
# Decorator
# Decorator
267. sor: 231. sor:
Az alábbi feladatot mely osztályok oldják meg Java esetén?
Az alábbi feladatot mely osztályok oldják meg Java esetén?
{{Kvízkérdés|típus=egy|válasz=3}}
{{Kvízkérdés|típus=egy|válasz=3}}
# Adapter
# Adapter
# Decorator
# Decorator
279. sor: 242. sor:
Az LoD szerint az általunk létrehozott objektumok nem számítanak idegennek.
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}}
== 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
{{Kvízkérdés|típus=egy|válasz=3}}
Extract Superclass
# Data Class
Introduce Null Object
# Extract Superclass
Feature Envy
# Introduce Null Object
Replace Type Code with Class
# 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ó?  
== 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}}
{{Kvízkérdés|típus=egy|válasz=1}}
# Data Class
# Data Class
# Extract Superclass
# Extract Superclass
300. sor: 263. sor:
# Replace Type Code with Class
# 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}}
== 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
# Data Class
# Extract Superclass
# Extract Superclass
308. sor: 272. sor:
# Replace Type Code with Class
# 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}}
== 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
# Data Class
# Extract Superclass
# Extract Superclass
317. sor: 280. sor:
# Replace Type Code with Class
# 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}}
== 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
# Data Class
# Extract Superclass
# Extract Superclass
325. sor: 288. sor:
# Feature Envy
# Feature Envy
# Replace Type Code with Class
# 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? ==
{{Kvízkérdés|típus=egy|válasz=4}}
# SRP
# REP
# LSP
# DIP
== Igaz vagy hamis az alábbi állítás? ==
A Visitor tervezési minta sérti az OCP elvet.
{{Kvízkérdés|típus=egy|válasz=1}}
# Igaz
# Hamis
== Igaz vagy hamis az alábbi állítás? ==
A Visitor tervezési minta sérti a DIP elvet.
{{Kvízkérdés|típus=egy|válasz=2}}
# 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.
{{Kvízkérdés|típus=egy|válasz=2}}
# 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.
{{Kvízkérdés|típus=egy|válasz=1}}
# 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.
{{Kvízkérdés|típus=egy|válasz=2}}
# 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.
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Hamis
== Ki számít ismerősnek a Demeter-törvény szerint? ==
{{Kvízkérdés|típus=több|válasz=1,2}}
# 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! ==
Mely csomagok stabilak?
[[Fájl:Oop vizsga csomagok1.png|Keret]]
{{Kvízkérdés|típus=több|válasz=1,2}}
# B
# C
# A
# D
== Tekintsük az alábbi osztálydiagramot! ==
Teljesül-e a bar függvényre a Liskov-elv?
[[Fájl:Oop vizsga liskov 2.png|Keret]]
{{Kvízkérdés|típus=egy|válasz=2}}
# Teljesül
# Sérül
== Tekintsük az alábbi osztálydiagramot! ==
Teljesül-e a foo függvényre a Liskov-elv?
[[Fájl:Oop vizsga liskov 1.png|Keret]]
{{Kvízkérdés|típus=egy|válasz=2}}
# 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.
{{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 során érdemes egyszerre több refaktorálási műveletet is elvégezni.
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Hamis
== A Feature Envy code smell melyik refaktorálási minták segítségével javítható? ==
{{Kvízkérdés|típus=egy|válasz=1}}
# 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ó? ==
{{Kvízkérdés|típus=több|válasz=2,3}}
# 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? ==
{{Kvízkérdés|típus=több|válasz=1,3,5}}
# 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.
{{Kvízkérdés|típus=egy|válasz=1}}
# 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!
        }
    }
{{Kvízkérdés|típus=egy|válasz=2}}
# Igaz
# Hamis
== A HTTP cookie-k milyen állapottárolást tesznek lehetővé? ==
{{Kvízkérdés|típus=egy|válasz=3}}
# Állapot a szerver adatbázisában
# Állapot a szerver memóriájában
# Állapot a kliens oldalon
== Mire szolgál a trading service? ==
{{Kvízkérdés|típus=egy|válasz=1}}
# 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.
{{Kvízkérdés|típus=egy|válasz=1}}
# 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.
{{Kvízkérdés|típus=egy|válasz=1}}
# 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!
{{Kvízkérdés|típus=egy|válasz=2}}
# Abstract Factory
# Decorator
# Interpreter
# Mediator
# Singleton
A tartalmazott objektumok ne beszélgessenek egymással közvetlenül!
{{Kvízkérdés|típus=egy|válasz=4}}
# Abstract Factory
# Decorator
# Interpreter
# Mediator
# Singleton
A statikus szemantikát és kényszereket a modell struktúrájába építsük be!
{{Kvízkérdés|típus=egy|válasz=3}}
# 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
{{Kvízkérdés|típus=egy|válasz=2}}
# 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!
{{Kvízkérdés|típus=egy|válasz=5}}
# 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!
{{Kvízkérdés|típus=egy|válasz=4}}
# 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!
{{Kvízkérdés|típus=egy|válasz=1}}
# 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!
{{Kvízkérdés|típus=egy|válasz=3}}
# Refactor: Hide method
# Refactor: Pull up method
# Refactor: Replace type code with class
# Smell: Feature envy
# 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 jelenlegi, 2026. január 12., 07:50-kori változata

Tesztkérdések
Statisztika
Átlagteljesítmény
-
Eddigi kérdések
0
Kapott pontok
0
Alapbeállított pontozás
(-)
-
Beállítások
Minden kérdés látszik
-
Véletlenszerű sorrend
-
-

A Monitor Object minta a Guarded Suspension minta segítségével valósítható meg.

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

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 .)

Típus: több. Válasz: 1,2,3,6. Pontozás: nincs megadva.

  1. Ne készítsünk típus- illetve képességmegkülönböztető függvényeket!
  2. Kerüljük a csak adattárolásra használt osztályokat!
  3. Egy osztály ne függjön a leszármazottaitól!
  4. Ne keverjük össze az objektumokat a leszármazottakkal!
  5. Az attribútumok legyenek privátok!
  6. A viselkedést modellezzük, ne a szerepeket!
  7. Egy osztály ne függjön az őt használó osztályoktól!
  8. 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.

Típus: egy. Válasz: 5. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Flyweight
  4. Object Pool
  5. Strategy

Allow objects with incompatible interfaces to collaborate.

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Flyweight
  4. Object Pool
  5. Strategy

Attach additional responsibilities to an object dynamically.

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Flyweight
  4. Object Pool
  5. Strategy

Share common state to support large numbers of objects efficiently.

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Flyweight
  4. Object Pool
  5. Strategy

Keep a set of initialized objects ready to use rather than allocating and destroying them on demand.

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Flyweight
  4. Object Pool
  5. 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.

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Mely kommentek ajánlottak a clean code szerint?

Típus: több. Válasz: 2,3,6. Pontozás: nincs megadva.

  1. Commented-out code
  2. TODO comment
  3. Amplification
  4. Journal comments
  5. Banner comments
  6. 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.

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Tegye sorrendbe az alábbi API-tervezési lépéseket!

API definiálása 1 oldalban

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Követelmények összegyűjtése

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

API implementálása

Típus: egy. Válasz: 5. Pontozás: nincs megadva.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Példák írása az API-hoz

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Use-case-ek írása

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Teljesül-e az alábbi feltételek mellett a Liskov-elv?

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

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Teljesül
  2. 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 ( ) ;
     }
  }


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Helyes
  2. Helytelen

Teljesül-e az alábbi feltételek mellett a Liskov-elv?

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

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Teljesül
  2. Sérül

Igaz-e az alábbi állítás?

A YAGNI elv azt mondja, hogy ne használjunk tervezési mintákat.

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

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.

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

A Feature Envy code smell mely refaktorálási minták segítségével javítható?

Típus: több. Válasz: 2,5. Pontozás: nincs megadva.

  1. Introduce explaining variable
  2. Move method
  3. Replace magic numbers with symbolic constant
  4. Rename method
  5. 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?

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Future
  4. Object
  5. Observer
  6. Singleton
  7. 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?

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Future
  4. Object
  5. Observer
  6. Singleton
  7. 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?

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Adapter
  2. Decorator
  3. Future
  4. Object
  5. Observer
  6. Singleton
  7. Strategy

Igaz-e az alábbi állítás?

Az LoD szerint az általunk létrehozott objektumok nem számítanak idegennek.

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. 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ó?

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Data Class
  2. Extract Superclass
  3. Introduce Null Object
  4. Feature Envy
  5. 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ó?

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Data Class
  2. Extract Superclass
  3. Introduce Null Object
  4. Feature Envy
  5. 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ó?

Típus: egy. Válasz: 5. Pontozás: nincs megadva.

  1. Data Class
  2. Extract Superclass
  3. Introduce Null Object
  4. Feature Envy
  5. 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ó? Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Data Class
  2. Extract Superclass
  3. Introduce Null Object
  4. Feature Envy
  5. 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ó?

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Data Class
  2. Extract Superclass
  3. Introduce Null Object
  4. Feature Envy
  5. 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?

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. SRP
  2. REP
  3. LSP
  4. DIP

Igaz vagy hamis az alábbi állítás?

A Visitor tervezési minta sérti az OCP elvet.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Igaz vagy hamis az alábbi állítás?

A Visitor tervezési minta sérti a DIP elvet.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Igaz vagy hamis az alábbi állítás?

A laza csatolás előnyös a karbantarthatóság szempontjából.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Ki számít ismerősnek a Demeter-törvény szerint?

Típus: több. Válasz: 1,2. Pontozás: nincs megadva.

  1. Akire van asszociációnk
  2. Akit bejövő paraméterként kaptunk
  3. Aki létrehozott minket
  4. Aki velünk egy csomagban van

Tekintsük az alábbi csomagokat!

Mely csomagok stabilak? Keret

Típus: több. Válasz: 1,2. Pontozás: nincs megadva.

  1. B
  2. C
  3. A
  4. D

Tekintsük az alábbi osztálydiagramot!

Teljesül-e a bar függvényre a Liskov-elv? Keret

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Teljesül
  2. Sérül

Tekintsük az alábbi osztálydiagramot!

Teljesül-e a foo függvényre a Liskov-elv? Keret

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Teljesül
  2. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

A Feature Envy code smell melyik refaktorálási minták segítségével javítható?

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Move method
  2. Change value to reference
  3. Rename method
  4. Introduce explaining variable
  5. Remove control flag

A Duplicated Code code smell melyik refaktorálási minták segítségével javítható?

Típus: több. Válasz: 2,3. Pontozás: nincs megadva.

  1. Substitute algorithm
  2. Extract class
  3. Extract method
  4. Inline method
  5. Duplicate observed data

Az alábbiak közül melyek jó függvénynevek a clean code elvek szerint?

Típus: több. Válasz: 1,3,5. Pontozás: nincs megadva.

  1. PickColor
  2. Manager
  3. Pick
  4. CP
  5. Copy
  6. F
  7. 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.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. 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!
       }
   }

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

A HTTP cookie-k milyen állapottárolást tesznek lehetővé?

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Állapot a szerver adatbázisában
  2. Állapot a szerver memóriájában
  3. Állapot a kliens oldalon

Mire szolgál a trading service?

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Szolgáltatások interfész alapján történő keresésére
  2. Tőzsdei szolgáltatások szabványos interfészleírója
  3. Szolgáltatások logikai név alapján történő keresésére
  4. 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.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. 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!

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Abstract Factory
  2. Decorator
  3. Interpreter
  4. Mediator
  5. Singleton

A tartalmazott objektumok ne beszélgessenek egymással közvetlenül!

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Abstract Factory
  2. Decorator
  3. Interpreter
  4. Mediator
  5. Singleton

A statikus szemantikát és kényszereket a modell struktúrájába építsük be!

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Abstract Factory
  2. Decorator
  3. Interpreter
  4. Mediator
  5. 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

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Refactor: Hide method
  2. Refactor: Pull up method
  3. Refactor: Replace type code with class
  4. Smell: Feature envy
  5. Smell: Inappropriate intimacy

Ne használjuk másik osztály nempublikus tagjait!

Típus: egy. Válasz: 5. Pontozás: nincs megadva.

  1. Refactor: Hide method
  2. Refactor: Pull up method
  3. Refactor: Replace type code with class
  4. Smell: Feature envy
  5. Smell: Inappropriate intimacy

Minimalizáljuk az együttműködő osztályok között használt metódusok számát!

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Refactor: Hide method
  2. Refactor: Pull up method
  3. Refactor: Replace type code with class
  4. Smell: Feature envy
  5. Smell: Inappropriate intimacy

Minimalizáljuk a publikus metódusok számát!

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Refactor: Hide method
  2. Refactor: Pull up method
  3. Refactor: Replace type code with class
  4. Smell: Feature envy
  5. Smell: Inappropriate intimacy

Soha ne kódoljuk a típust enum vagy int értékekbe, használjunk helyette polimorfizmust!

Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Refactor: Hide method
  2. Refactor: Pull up method
  3. Refactor: Replace type code with class
  4. Smell: Feature envy
  5. Smell: Inappropriate intimacy

Igaz vagy hamis az alábbi állítás?

A Decorator tervezési minta sérti az OCP elvet.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Igaz vagy hamis az alábbi állítás?

Az Abstract Factory tervezési minta sérti az OCP elvet.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Igaz vagy hamis az alábbi állítás?

Egy osztály interfésze ugyanaz, mint az általa implementált interfészek halmaza.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Igaz vagy hamis az alábbi állítás?

A DbC elv szerint a prekondíciókat nem szabad erősíteni.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Ki számít ismerősnek a Demeter-törvény szerint?

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Aki létrehozott minket
  2. Aki velünk egy a csomagban van
  3. Aki ismer minket
  4. Akit mi hoztunk létre

Tekintsük az alábbi csomagokat!

Mely csomagok instabilak? Keret

Típus: több. Válasz: 1,3. Pontozás: nincs megadva.

  1. A
  2. C
  3. D
  4. B

Tekintsük az alábbi osztálydiagramot!

Teljesül-e a bar függvényre a Liskov-elv? Keret

Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Teljesül
  2. 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!


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Adapter
  2. Prototype
  3. Strategy
  4. Template Method
  5. Singleton

Az öröklődés célja mindig a viselkedés újrahasznosítása!


Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Adapter
  2. Prototype
  3. Strategy
  4. Template Method
  5. Singleton

A gyakran változó dinamikus szemantikát és kényszereket külső viselkedésként implementáljuk!


Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Adapter
  2. Prototype
  3. Strategy
  4. Template Method
  5. 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? Keret

Típus: több. Válasz: 3,4,5. Pontozás: nincs megadva.

  1. Implementáljuk a sztenderd metódusokat!
  2. Kerüljük a csak adattárolásra használt osztályokat!
  3. Egy osztály ne függjön a saját leszármazottaitól!
  4. Kerüljük az isten-osztályokat!
  5. 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? Keret

Típus: több. Válasz: 1,2,3,4. Pontozás: nincs megadva.

  1. Ne készítsünk függvényeket a típusok vagy képességek megkülönböztetésére, használjunk polimorfizmust!
  2. Ne keverjük össze a leszármazottakat az objektumokkal!
  3. Az öröklési hierarchia gyökerében interfészek vagy absztrakt osztályok legyenek!
  4. Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődéssel!
  5. 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!


Típus: egy. Válasz: 3. Pontozás: nincs megadva.

  1. Smell: Feature envy
  2. Smell: Refused bequest
  3. Smell: Large class
  4. Refactor: Introduce null object
  5. Refactor: Encapsulate field

Soha ne vizsgáljuk egy objektum típusát, használjunk helyette polimorfizmust!


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Smell: Feature envy
  2. Smell: Downcasting
  3. Smell: Large class
  4. Refactor: Introduce null object
  5. 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!


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Smell: Feature envy
  2. Smell: Refused bequest
  3. Smell: Large class
  4. Refactor: Introduce null object
  5. Refactor: Encapsulate field

Egy osztály ne függjön az őt használó osztályoktól!


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Smell: Feature envy
  2. Smell: Refused bequest
  3. Smell: Large class
  4. Refactor: Introduce null object
  5. Refactor: Encapsulate field

Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődéssel!


Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Smell: Feature envy
  2. Smell: Refused bequest
  3. Smell: Large class
  4. Refactor: Introduce null object
  5. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

A Long Method code smell melyik refaktorálási minta segítségével javítható?

Típus: egy. Válasz: 4. Pontozás: nincs megadva.

  1. Inline method
  2. Encapsulate field
  3. Rename method
  4. Decompose conditional
  5. Introduce assertion

A Inappropriate Intimacy code smell mely refaktorálási minták segítségével javítható?

Típus: több. Válasz: 1,2,5. Pontozás: nincs megadva.

  1. Inline method
  2. Move method
  3. Hide method
  4. Remove control flag
  5. Replace delegation with inheritance

Az alábbiak közül melyek jó osztálynevek a clean code elvek szerint?

Típus: több. Válasz: 1,6. Pontozás: nincs megadva.

  1. Student
  2. MPoint
  3. MP
  4. SqlStatementFromHardCodedValuesAndSafeDataTypes
  5. Move
  6. Info
  7. SyntaxVisitor

Igaz vagy hamis az alábbi felszólítás a clean-code szerint?

Ne használjunk unchecked kivételeket!


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. 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;
   }

Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Elosztott kommunikáció során mely minta jellemző az alábbi állításokra?

Szerver objektum példányosítása


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Függvényhívás hálózati kéréssé alakítása


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Beérkező hálózati kérés függvényhívássá alakítása


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Úgy viselkedik, mintha lokális szerver objektum lenne


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

A szerver megkeresése


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Paraméterek üzenetté sorosítása


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Csatlakozás a szerverhez


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Elosztott kommunikáció során mely minta jellemző az alábbi állításra?

Visszatérési érték üzenetté sorosítása


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Elosztott kommunikáció során mely minta jellemző az alábbi állításra?

Kliens kapcsolatok fogadása


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Adapter
  2. Proxy

Elosztott kommunikáció során mely minta jellemző az alábbi állításra?

Implementálja a szerver interfészét


Típus: egy. Válasz: 2. Pontozás: nincs megadva.

  1. Adapter
  2. 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.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. 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.


Típus: egy. Válasz: 1. Pontozás: nincs megadva.

  1. Igaz
  2. Hamis

Az alábbiak közül melyek szerepelnek az API tervezési és a clean code témakörben is?

Típus: több. Válasz: 1,2,5,7,8. Pontozás: nincs megadva.

  1. Kerüljük a hosszú paraméterlistákat
  2. Használjunk beszédes neveket
  3. Egy függvény egyszerre csak egy absztrakciós szinten dolgozzon
  4. Egy függvény legfeljebb 20 soros legyen
  5. Kerüljük a mellékhatásokat
  6. Válasszunk megfelelő alapértelmezett értékeket
  7. Kerüljük a rövidítéseket
  8. Ha egy függvény előfeltételei sérülnek, azonnal dobjunk kivételt a függvényből