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

UwU
Nincs szerkesztési összefoglaló
 
(9 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 alábbi OO tervezési heurisztikának melyik a leginkább megfelelő code smell vagy refaktorálási transzformáció? ==
 
Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődésként!
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!  
{{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: 262. 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!  
 
{{Kvízkérdés|típus=egy|válasz=5}}
# Data Class
# Data Class
# Extract Superclass
# Extract Superclass
308. sor: 270. 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
 
{{Kvízkérdés|típus=egy|válasz=4}}
 
# Data Class
# Data Class
# Extract Superclass
# Extract Superclass
317. sor: 278. 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!
 
{{Kvízkérdés|típus=egy|válasz=2}}
 
# Data Class
# Data Class
# Extract Superclass
# Extract Superclass
325. sor: 285. 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 eredeti címe: „https://vik.wiki/OOP_vizsga_kikérdező