„Záróvizsga kvíz - Sznikák” változatai közötti eltérés
a válasz javítása |
kérdések hozzáadása |
||
| 288. sor: | 288. sor: | ||
# A nézet ősosztályban van egy UpdateAllViews művelet, mely a többi nézetet is értesíti a változásról. | # A nézet ősosztályban van egy UpdateAllViews művelet, mely a többi nézetet is értesíti a változásról. | ||
# A dokumentumnak minden nézet típusra van egy külön listája, melyben az adott típusú nézeteket tárolja. | # A dokumentumnak minden nézet típusra van egy külön listája, melyben az adott típusú nézeteket tárolja. | ||
== Jelölje meg, mely állitások igazak .NET környezetben szálkezelés vonatkozásában! FIGYELEM, akárhány helyes válasz létezhet! (2022 jun) == | |||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | |||
{{Kvízkérdés|típus=több|válasz=3}} | |||
# .NET környezetben egy folyamat (processz) a kilépéskor bevárja az összes háttérszálat. | |||
# A lock utasítás eltérő folyamatok (processzek) szálai között is használható kölcsönös kizárás megvalósítására. | |||
# Amikor egy ManualResetEvent objektum jelzett állapotba kerül, valamennyi rá várakozó szál tovább futhat. | |||
== Egy alkalmazásban a több helyről is használt UserRepository osztály a publikus műveleteiben relációs adatbázisból olvas fel felhasználókra vonatkozó adatokat a hívó számára. A kliens osztályok a UserRepository-t már egy az általa implementált IUserRepository interfészen keresztül érik el. Mely tervezési minta segítségével tudjuk a UserRepository osztály és a klienseinek módosítása nélkül megoldani, hogy az egyes kérések kiszolgálása nemrég lekérdezett friss adatok esetén cache-ből, egyébként az eredeti módon, az adatbázisból történhessen meg? (2022 jun) == | |||
{{Kvízkérdés|típus=egy|válasz=10}} | |||
# Singleton | |||
# Observer | |||
# Memento | |||
# Adapter | |||
# Abstract factory | |||
# Factory method | |||
# Adapter factory | |||
# CacheAdapter | |||
# Composite | |||
# Proxy | |||
== Adottak az alábbi állítások a C# property, delegate és attribute vonatkozásában. Jelölje meg, mely állítások igazak. FIGYELEM, akárhány helyes válasz létezhet! (2022 jun) == | |||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | |||
{{Kvízkérdés|típus=több|válasz=1,2,3}} | |||
# Egy C# attribútum alkalmazásakor az attribútum nevét [ ] közé kell tenni. | |||
# Feltéve, hogy adott egy Rectangle osztály és annak egy Width tulajdonsága (property), valamint a Rectangle osztály egy rect nevú példánya/objektuma, akkor a tulajdonság beállítása pl. a rect.Width = 10; formában lehetséges. | |||
# C# nyelven delegate típusokat a delegate kulcsszó segítségével lehet definiálni. | |||
# A C# tulajdonságok (property) segítségével deklaratív módon tudunk információt csatolni többek között tagváltozókhoz, metódusokhoz és osztályokhoz. | |||
== Adottak az alábbi állitások a Document-View (Dokumentum-Nézet) architektúra vonatkozásában. Jelölje meg, mely állítások igazak! FIGYELEM, akárhány helyes válasz létezhet! (2022 jun) == | |||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | |||
{{Kvízkérdés|típus=több|válasz=1,4}} | |||
# Az architektúra az Observer tervezési minta koncepcióira épül. | |||
# A nézetek másolatot tartanak fent a dokumentum adataiból. | |||
# Amikor egy új nézet típust kell bevezetni, akkor szükség van a dokumentum osztály módosítására. | |||
# A nézeteknek nincs közvetlen kapcsolatuk egymással (nincs egymásra hivatkozás) | |||
# Egy nézet több dokumentumhoz is kapcsolódik (ezeket egy dokumentum listában tárolja a nézet). | |||
== A feladat egy KeyboardHandler osztály elkészítése C# nyelven, mely egy eseménnyel jelzi, ha a felhasználó lenyomott egy billentyűt, és az esemény paramétereiben megadja a lenyomott billenytủ ASCII kódját! Adja meg, mely sorok alkalmazásával oldható meg az esemény megvalósítása és biztonságos elsütése! (2022 jun) == | |||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | |||
{{Kvízkérdés|típus=több|válasz=2,5,9,10}} | |||
# public KeyPressedDelegate KeyPressed; | |||
# delegate void KeyPressedDelegate(char key); | |||
# event void KeyPressed(char key); | |||
# public delegate KeyPressedDelegate KeyPressed; | |||
# public event KeyPressedDelegate KeyPressed; | |||
# public KeyPressedDelegate KeyPressed(char key); | |||
# public event KeyPressedDelegate KeyPressed(char key); | |||
# if (KeyPressedDelegate != null) | |||
# if (KeyPressed != null) | |||
# KeyPressed(key); | |||
# KeyPressedDelegate(key); | |||
== Egy rendszermonitorozó alkalmazásba TCP/IP kapcsolaton másodpercenként érkeznek különböző mérési adatok. Az alkalmazásban a Monitor osztály feladata ezen adatok értelmezése, és az adatok bizonyos tartományokból való kiesése esetén riasztási értesítések küldése. Az alkalmazásnak különböző riasztási módokat kell támogatnia, pl. SMS és e-mail alapú riasztatást, de könnyen bővíthetőnek kell lennie újabb értesítési módokkal. Egy adott időpontban mindig csak egy riasztási módot lehet beállítani (ez a feltétel a későbbiekben sem változik). A riasztási adatokat auditálni is kell, melyre vonatkozóan a fájlba és relációs adatbázisba való naplózás közül egyet kell tudni beállítani. Melyik tervezési mintát célszerű a megvalósítás során választani? (2022 jun) == | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
# Memento | |||
# Factory method | |||
# Strategy | |||
# Adapter | |||
# Composite | |||
# Proxy | |||
# Abstract factory | |||
# Singleton | |||
# AlertHandler | |||
== Adottak az alábbi állítások a Memento tervezési mintával kapcsolatban! Jelölje meg, mely állítások igazak. FIGYELEM, akárhány helyes válasz letezhet! (2022 jun) == | |||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | |||
{{Kvízkérdés|típus=több|válasz=1,3}} | |||
# A Memento mintában az Originator osztálynak van olyan múvelete, melynek egy Memento objektumot lehet átadni. Ez a múvelet a Mementoban levő adatok alapján az Originator állapotát állítja. | |||
# A Memento mintában a Memento osztálynak van olyan múvelete, mely egy Originator objektumot ad vissza. | |||
# A Memento mintában az Originator osztálynak van olyan múvelete, mellyel egy Memento objektumot lehet kérni. Ez a Memento objektum az Originator állapotának másolatát tárolja. | |||
# A Memento mintában a Memento osztálynak van olyan múvelete, melynek egy Originator objektumot lehet átadni. Ez a múvelet az Originatorban levő adatok alapján az Memento állapotát állítja. | |||
== Adott az alábbi osztály: (2022 jun) == | |||
<pre> | |||
class LongValue | |||
{ | |||
long val = 0; // 64 bites érték, *1 | |||
object syncRoot1 = new object() ; // * 2$ | |||
object syncRoot2 = new object() ; // * 3$ | |||
public long GetValue() // *4 | |||
{ | |||
lock (syncRoot1) //*5 | |||
{ return val; } | |||
} | |||
public void SetValue(long v) // *6 | |||
{ | |||
lock (syncRoot2) // *7 | |||
{ val = v; } | |||
} | |||
} | |||
</pre> | |||
Mely állítás igaz? Csak olyan megoldás fogadható el, mely nem jár az osztály használatakor szükségtelen teljesítményromlással (pl. nagy számú párhuzamos hozzáférés esetén sem). | |||
{{Kvízkérdés|típus=egy|válasz=3}} | |||
# A LongValue osztály jelen formájában is szálbiztos (thread safe). | |||
# A LongValue osztály akkor lesz szálbiztos (thread safe), ha a *2 sorban a syncRoot1 és a *3 sorban a syncRoot2 változót statikussá tesszük. | |||
# A LongValue osztály akkor lesz szálbiztos (thread safe), ha a *7 sorban a syncRoot2-t syncRoot1-re cseréljük. | |||
# A LongValue osztály akkor lesz szálbiztos (thread safe), ha a *7 sorban a syncRoot2-t syncRoot1-re cseréljük, valamint a *2 sorban a syncRoot1 változót statikussá tesszük. | |||
# A LongValue osztály akkor lesz szálbiztos (thread safe), ha *4 és *6 sorokban a public kulcsszó után kiírjuk a synchronized kulcsszót. | |||
== Az alábbi álítások a .NET Framework platformra vonatkoznak! Jelölje meg, mely állitások igazak! FIGYELEM, akárhány helyes válasz létezhet! (2022 jun) == | |||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | |||
{{Kvízkérdés|típus=több|válasz=2,3,4}} | |||
# A .NET szerelvények (exe, dll) natív gépi kódú utasításokat tartalmaznak | |||
# Egy alkalmazás több szerelvényböl is állhat | |||
# Az IL kódot a JIT compiler fordítja gépi kódra | |||
# Azonosított .NET szerelvényekből lehet két ugyanolyan nevǔ (fájlnév) telepítve egy számítógépre | |||
== Jelölje meg, mely állitások igazak a Pipes and filters (csővezetékek és szürök) architektúra vonatkozásában! (2022 jun) == | |||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | |||
{{Kvízkérdés|típus=több|válasz=1,2}} | |||
# Az architektúrában a csővezetékek és a szủrők mellett van egy adatforrás és egy adatnyelő is. | |||
# Előnye, hogy a filterek rugalmasan kombinálhatók és lecserélhetők. | |||
# Egyik előnye az egyszerű hibakezelés. | |||
== Adottak az alábbi állítások a Proxy tervezési minta vonatkozásában! Jelölje meg, mely állítások igazak. FIGYELEM, akárhány helyes válasz létezhet! (2022 jan) == | == Adottak az alábbi állítások a Proxy tervezési minta vonatkozásában! Jelölje meg, mely állítások igazak. FIGYELEM, akárhány helyes válasz létezhet! (2022 jan) == | ||