„Sznikák vizsga kikérdező” változatai közötti eltérés
a Új kérdések hozzáadása. |
a Új kérdések hozzáadása. |
||
| 781. sor: | 781. sor: | ||
# A mintában a Context (vagy Client) osztályban van egy vagy több mutató/referencia, mely típusa egy vagy több algoritmus interfész/absztrakció. | # A mintában a Context (vagy Client) osztályban van egy vagy több mutató/referencia, mely típusa egy vagy több algoritmus interfész/absztrakció. | ||
== Adottak az alábbi állítások különböző tervezési mintákkal kapcsolatban | == Adottak az alábbi állítások különböző tervezési mintákkal kapcsolatban. Jelölje meg, mely állítások igazak. == | ||
{{kvízkérdés|típus=több|válasz=1,3,4|pontozás=-}} | {{kvízkérdés|típus=több|válasz=1,3,4,5|pontozás=-}} | ||
# A Document-View architektúra az Observer tervezési minta egy speciális alkalmazása. | # A Document-View architektúra az Observer tervezési minta egy speciális alkalmazása. | ||
# A Document-View architektúra a Composite tervezési minta egy speciális alkalmazása. | # A Document-View architektúra a Composite tervezési minta egy speciális alkalmazása. | ||
# Az Adapter minta lehetővé teszi olyan osztályok együttműködését, melyek egyébként az inkompatbilis interfészeik miatt nem tudnának együttműködni. | # Az Adapter minta lehetővé teszi olyan osztályok együttműködését, melyek egyébként az inkompatbilis interfészeik miatt nem tudnának együttműködni. | ||
# Az Adapter mintában - pontosabban annak Object Adapter változatában - az Adapter osztály tartalmaz egy mutatót vagy referenciát az adaptálandó (Adaptee) osztályra. Az Adapter osztály a műveleteinek megvalósításában felhasználja az adaptálandó (Adaptee) osztály szolgáltasait. | # Az Adapter mintában - pontosabban annak Object Adapter változatában - az Adapter osztály tartalmaz egy mutatót vagy referenciát az adaptálandó (Adaptee) osztályra. Az Adapter osztály a műveleteinek megvalósításában felhasználja az adaptálandó (Adaptee) osztály szolgáltasait. | ||
# A felhasználói interakciókat a View osztály kezeli. | |||
# A nézethez tipikusan több dokumentum tartozik. | |||
== | == Jelölje meg, mely állítások igazak az alábbiak közül! == | ||
{{kvízkérdés|típus= | {{kvízkérdés|típus=több|válasz=2|pontozás=-}} | ||
# | # A JIT compiler fordítja a forrásfájlokat - pl. a .cs állományokat - IL (Intermediate Language) kódra. | ||
# | # Az IL (Intermediate Language) kódot könnyű visszafejteni. | ||
# | # .NET környezetben az adott nyelvhez tartozó fordító (compiler) kimenete forrásfájlonként egy .obj kiterjesztésű fájl. mely IL (Intermediate Language) kódot tartalmaz. A .obj kiterjesztésű fájlokat a linker fűzi össze egy .exe vagy .dll kiterejesztésű állománnyá, mely natív hardverfüggő gépi kódot tartalmaz, majd ezeket a .exe és .dll állományokat telepítjük a célkörnyezetbe. | ||
# | # C# támogatja a többszörös öröklést. | ||
== | == Adottak az alábbi állítások .NET szerelvények (assembly) vonatkozásában. Jelölje meg az igaz állításokat. == | ||
{{kvízkérdés|típus= | {{kvízkérdés|típus=több|válasz=3,4|pontozás=-}} | ||
# | # Privát szerelvényekből lehet két azonos nevűt egymás mellé telepíteni. | ||
# | # Az azonosított szerelvények titkosítottak a kiadó privát kulcsával. | ||
# | # Az azonosított szerelvények digitálisan alá vannak írva a kiadó privát kulcsával. | ||
# | # A .NET szerelvényekben a kód IL (Intermediate Language) formátumban van, mely telepítéskor vagy első művelethíváskor fordul le gépi kódra. | ||
== | == Adottak az alábbi állítások a C# események (event) vonatkozásában. Jelölje meg a helyes állításokat! == | ||
{{kvízkérdés|típus=egy több|válasz=|pontozás=-}} | {{kvízkérdés|típus=egy több|válasz=1,4|pontozás=-}} | ||
# | # A C# delegate-ek állnak a működésük hátterében. | ||
# | # Adott eseményre feliratkozni a "++" operátorral lehet. | ||
# | # Adott eseményre egyszerre egy előfizető iratkozhat fel. | ||
# | # Egy osztály több eseményt is publikálhat. | ||
# Egy esemény tag osztályban való felvételkor az esemény tagváltozó előtt a delegate kulcsszót kell szerepeltetni. | |||
== | == Adottak az alábbi állítások a .NET szálkezelés/szinkronizáció vonatkozásában. Jelölje meg a helyes állításokat. == | ||
{{kvízkérdés|típus= | {{kvízkérdés|típus=több|válasz=3,4|pontozás=-}} | ||
# | # A ManualResetEvent szinkronizációs objektumot tipikusan kölcsönös kizárás megvalósítására alkalmazzuk. | ||
# | # A ManualResetEvent objektum SeT művelete lezárja az objektumot, így a többi szál várakozni kényszerül. | ||
# | # Arra várakozni, hogy ManualResetEvent objektum jelzett állapotba kerüljön, az objketum WaitOne műveletével lehet. | ||
# | # ManualResetEvent és AutoResetEvent típusú objektumokra ugyanúgy kell várakozni. | ||
== | == Mi a tervezési minták egyik elsődleges célja? == | ||
{{kvízkérdés|típus=egy | {{kvízkérdés|típus=egy|válasz=2|pontozás=-}} | ||
# | # Adott funckionalitás legkevesebb kóddal történő megvalósítása. | ||
# | # A kód újrafelhasználhatóságának elősegítése. | ||
# | # Adott üzleti problémák jól érthető modellezése. | ||
# | # Jobb teljesítményű kód írása. | ||
# A valóság minél érthetőbb modellezése. | |||
== | == Mi a Composite tervezési minta elsődleges célja? == | ||
{{kvízkérdés|típus=egy több|válasz=|pontozás=-}} | {{kvízkérdés|típus=egy|válasz=2|pontozás=-}} | ||
# | # Lehetővé teszi objektumok tetszőleges mélységben való egymásba ágyazását, és támogatja ezen objektumok fastruktúrába szervezését. | ||
# | # Lehetővé teszi, hogy bizonyos műveletek tekintetében ne kelljen az elemi és összetett objektumokat megkülönböztetni, és támogatja ezen objektumok fastruktúrába szervezését. | ||
# | # Lehetővé teszi, hogy összetett objektumokat úgy kezeljünk, hogy könnyű legyen új összetett objektumtípust bevezetni (a meglevőkat ne legyen szükséges módosítani), valamint támogatja az objektumok fastruktúrába szervezését. | ||
# | # Lehetővé teszi elemi és összetett objektumok közös heterogén kollekcióban való tárolását, valamint támogatja ezen objektumok fastruktúrába szervezését. | ||
== Adott az alábbi állítás: C# nyelven a nem statikus tagváltozókat nem statikus lock objektummal kell védeni, mert statikus lock objektum alkalmazása esetén nem teljesülne a kölcsönös kizárás (inkonzisztens állapotba kerülhetne a védett objektum). Jelölje meg a helyes választ! == | |||
{{kvízkérdés|típus=egy|válasz=1|pontozás=-}} | |||
# csak az első tagmondat igaz (+ -) | |||
# csak a második tagmondat igaz (- +) | |||
# mindkét tagmondat igaz, de a következtetés hamis (+ + -) | |||
# mindkét tagmondat igaz és a következtetés is helyes (+ + +) | |||
# egyik tagmondat sem igaz (- -) | |||
== Egy kiszolgáló alkalmazás esetében praktikusabb külön szálakat indítani az egyes kérések kiszolgálásához, mert a thread-pool szálak elfogyhatnak. Jelölje meg a helyes választ! == | |||
{{kvízkérdés|típus=egy|válasz=2|pontozás=-}} | |||
# csak az első tagmondat igaz (+ -) | |||
# csak a második tagmondat igaz (- +) | |||
# mindkét tagmondat igaz, de a következtetés hamis (+ + -) | |||
# mindkét tagmondat igaz és a következtetés is helyes (+ + +) | |||
# egyik tagmondat sem igaz (- -) | |||
== Mi az Observer tervezési minta elsődleges célja? Jelölje meg a helyes választ! == | |||
{{kvízkérdés|típus=egy|válasz=4|pontozás=-}} | |||
# Lehetővé teszi a felhasználói eseményekre való reagálást. | |||
# Lehetővé teszi, hogy egy dokumentum nézetei értesüljenek a dokumentum változásáról. | |||
# Lehetővé teszi objektumok könnyű megfigyelését az objektumok becsomagolásával. | |||
# Lehetővé teszi, hogy objektumok (közvetve) úgy értesítsék egymást állapotuk megváltozásáról, hogy nem tudnak egymásról. | |||
# Lehetővé teszi algoritmusok folyamatának (progress) monitorozását. | |||
== Adottak az alábbi állítások az Observer tervezési mintával kapcsolatban. Jelölje meg, mely állítások igazak. == | |||
{{kvízkérdés|típus=több|válasz=1,2|pontozás=-}} | |||
# A minta az egyes subject típusoknak bevezet egy ősosztályt, melynek szerepe többek között az, hogy tárolja a beregisztrált observereket. | |||
# A minta az egyes observer típusoknak bevezet egy ősosztályt (vagy interfészt), melynek szerepe, hogy a subject számára egységessé tegyék az egyes observer típusok kezelését. | |||
# Az observer implementációkból egy dependency (függőség) kapcsolat mutat a konkrét subject osztály irányába. | |||
# Az observer implementációknak van egy általános subject listájuk, mellyel egységesen hivatkoznak a különböző típusú subject-ekre. | |||
== Adott az alábbi kódrészlet, mely Oracle típusú kapcsolat és parancs objektumok segítségével Oracle adathozzáférési réteget valósít meg. <code> <br> IConnection conn = new OracleConnection(); <br> | |||
conn.Open(); <br> | |||
ICommand cmd = new OracleCommand("SELECT * FROM Orders"); <br> | |||
cmd.ExecuteReader(); </code> <br> T.f.h. hasonló kódrészletek az adathozzáférési réteg több osztályában előfordulnak.Melyik tervezési minta alkalmazásával lenne legpraktikusabb az adathozzáférési réteg kódját úgy általánosítani, hogy tetszőleges adatkezelő (nem csak Oracle) rendszer esetén működőképes legyen? Jelölje meg a helyes választ!== | |||
{{kvízkérdés|típus=egy|válasz=2|pontozás=-}} | |||
# Proxy | |||
# Abstract Factory | |||
# Factory Method | |||
# Adapter | |||
# Strategy | |||
== Jelölje meg a helyes választ! == | |||
{{kvízkérdés|típus=egy|válasz=1|pontozás=-}} | |||
# A Proxy tervezési mintában a Proxy objektum egy transzparens csomagoló az eredeti objektum körül, mely szabályozza az eredeti objektumhoz való hozzáférést. | |||
# A Proxy tervezési minta adatok cache-elésére használt a web-en, a kérések gyorsabb kiszolgálása érdekében. | |||
# A Proxy tervezési minta adatok cache-elésére használt bármilyen kontextusban, a kérések gyorsabb kiszolgálása érdekében. | |||
# A Proxy tervezési mintában a kliens objektum az eredeti kiszolgáló helyett egy proxy objektumra mutat, és amikor szükséges, a mutatót az eredeti kiszolgáló objektumra állítjuk, hogy az szolgálja ki a kliens kéréseit | |||
# A Proxy tervezési minta lehetővé teszi az egymással nem kompatibilis objektumok együttműködését. | |||
== Adja meg mely állítás igaz a kliens oldali megvalósításra! == | |||
{{kvízkérdés|típus=több|válasz=2,3|pontozás=-}} | |||
# A kliens oldali kód általában lefordítható, így a hibák egy része már fordításkor kiderül. | |||
# Ha szüksége van interakcióra a kiszolgálóval, akkor kis adatforgalommal, hatékonyan tud kommunikálni. | |||
# Gyorsabb, mint a kiszolgáló oldali, mert nincs szükség interakcióra a kiszolgálóval. | |||
# A kliens oldali kóddal általában könnyebb böngésző független megvalósítást készíteni. | |||
# Az alkalmazás futása gyorsabb a kiszolgáló oldalihoz képest. | |||
== Adja meg mely állítás igaz a kiszolgáló oldali megvalósításra! == | |||
{{kvízkérdés|típus=több|válasz=1,4,5|pontozás=-}} | |||
# A kiszolgáló oldali kód általában lefordítható, így a hibák egy része már fordításkor kiderül. | |||
# Ha szüksége van interakcióra a kliens oldallal, akkor kis adatforgalommal, hatékonyan tud kommunikálni. | |||
# Gyorsabb, mint a kliens oldali, mert nincs szükség interakcióra a klienssel. | |||
# A kiszolgáló oldali kóddal általában könnyebb böngésző független megvalósítást készíteni. | |||
# Az alkalmazás futása gyorsabb a kliens oldalihoz képest. | |||
== Miben segítenek a tervezési minták? == | |||
{{kvízkérdés|típus=több|válasz=1,2,4|pontozás=-}} | |||
# Rendszer karbantarthatóság és módosíthatóság elősegítése. | |||
# A kód újrafelhasználhatóságának elősegítése. | |||
# Adott üzleti problémák jól érthető modellezése. | |||
# Nem maguktól értetődő kódok megtalálása. | |||
# A valóság minél érthetőbb modellezése. | |||
== .NET Framework alapú környezetben egy könyvtárat (dll) készítünk. Jelölje meg, mely állítások igazak! == | |||
{{kvízkérdés|típus=több|válasz=1,2|pontozás=-}} | |||
# A könyvtár kódja könnyen visszafejthető. | |||
# Lehetőség van a könyvtár egy kulcspár privát tagjával történő digitális aláírására. | |||
# A könyvtárat semmilyen feltételek mellett nem célszerű központi helyre telepíteni, mert névütközés veszélye áll fent. | |||
# A könyvtárat semmilyen feltételek mellett nem célszerű központi helyre telepíteni, mert verzióütközés veszélye áll fent. | |||
# A könyvtárat priváttá tehetjük azáltal, hogy egy kulcspár titkos kulcsával titkosítjuk. | |||
== Adott az alábbi C# nyelvű .NET alkalmazás kódrészlet. | |||
<code><br> | |||
class ClassA<br> | |||
{<br> | |||
int counter = 0;<br> | |||
List<int> values = new List<int>();<br> | |||
public void SetValue (int n) { counter = n; }<br> | |||
public void ResetIfGreaterThanZero() { if (counter > 0) counter = 0; }<br> | |||
public void Subtract(int n) { counter -= n; }<br> | |||
public void AddItem(int n) { values.Add(n); }<br> | |||
… további kód<br> | |||
}<br> Jelölje meg mely műveletek esetében kell többszálú környezetben a kölcsönös kizárást megvalósítani!== | |||
{{kvízkérdés|típus=több|válasz=2,3,4|pontozás=-}} | |||
# SetValue | |||
# Subtract | |||
# ResetIfGreaterThanZero | |||
# AddItem | |||
== A feladat egy Pipes and filters (csővezeték) architektúrájú alkalmazás elkészítése, melynek során célunk egy több CPU magos hardver környezet lehető legjobb kihasználása. Melyik megközelítést választaná ehhez? == | |||
{{kvízkérdés|típus=egy|válasz=5|pontozás=-}} | |||
# Passzív szűrő által vezérelt | |||
# Csővezeték által vezérelt | |||
# Adatnyelő által vezérelt | |||
# Adatforrás által vezérelt | |||
# Aktív szűrő által vezérelt | |||
== A feladatunk egy alkalmazás elkészítése egy gyártósor által előállított termék különböző modelljeinek a teszteléséhez. A különböző modellekhez mindig ugyanazon alkatrészkategóriákból (pl. hangszóró, csatlakozó, vezérlőegység stb.) van szükség egy-egy alkatrészre, de az egyes modellekhez az egyes alkatrészkategóriákból más-más modellspecifikus alkatrész beépítésére van szükség (pl. más típusú hangszóró, csatlakozó stb.) tartozik a Galaxy S20 és Galaxy A20 modellekhez), melyekhez az alkalmazásunkban különböző tesztelést végző osztálybeli objektumra van szükség. Mely tervezési minta alkalmazása a legcélszerűbb az alábbiak közül? == | |||
{{kvízkérdés|típus=egy|válasz=9|pontozás=-}} | |||
# Composite | |||
# Memento | |||
# Observer | |||
# Strategy | |||
# Singleton | |||
# Proxy | |||
# Factory method | |||
# Adapter | |||
# Abstract factory | |||
== Egy alkalmazásban a több helyről is használt SecurityService osztály biztonsági szempontból érzékeny műveleteket végez. A kliens osztályok a SecurityService-t már egy az általa implementált ISecurityService interfészen keresztül érik el. Mely tervezési minta segítségével tudjuk az osztály és a klienseinek módosítása nélkül megoldani, hogy az egyes kérések kiszolgálása csak bizonyos jogosultsági körrel rendelkező kliens kód esetében történjen meg? == | |||
{{kvízkérdés|típus=egy|válasz=6|pontozás=-}} | |||
# Composite | |||
# Memento | |||
# Observer | |||
# Strategy | |||
# Singleton | |||
# Proxy | |||
# Factory method | |||
# Adapter | |||
# Abstract factory | |||