„Záróvizsga kvíz - Sznikák” változatai közötti eltérés
kérdések hozzáadása |
→Az alábbiak közül mely állítások igazak? (2023 jun): Ez szofttech kérdés. |
||
| (9 közbenső módosítás, amit 3 másik szerkesztő végzett, nincs mutatva) | |||
| 2. sor: | 2. sor: | ||
|cím=ZVSznikák|pontozás=- | |cím=ZVSznikák|pontozás=- | ||
}} | }} | ||
== 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! (2023 jun) == | == 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! (2023 jun) == | ||
| 35. sor: | 28. sor: | ||
== Az alábbi állítások a .NET Framework platformra vonatkoznak! Jelölje meg, mely állítások igazak! FIGYELEM, akárhány helyes válasz létezhet! (2023 jun) == | == Az alábbi állítások a .NET Framework platformra vonatkoznak! Jelölje meg, mely állítások igazak! FIGYELEM, akárhány helyes válasz létezhet! (2023 jun) == | ||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | (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= | {{Kvízkérdés|típus=több|válasz=4}} | ||
# Amikor egy .NET alapú projektet - speciálisabb beállítások alkalmazása nélkül - lefordítunk (pl. Visual Studioban), olyan .NET szerelvény (exe, dll) születik, mely natív utasításokat tartalmaz | # Amikor egy .NET alapú projektet - speciálisabb beállítások alkalmazása nélkül - lefordítunk (pl. Visual Studioban), olyan .NET szerelvény (exe, dll) születik, mely natív utasításokat tartalmaz | ||
# .NET környezetben az objektumok azonnal felszabadulnak, amint az utolsó hivatkozás is megszűnik rájuk | # .NET környezetben az objektumok azonnal felszabadulnak, amint az utolsó hivatkozás is megszűnik rájuk | ||
| 115. sor: | 108. sor: | ||
{{Kvízkérdés|típus=több|válasz=1,2,3}} | {{Kvízkérdés|típus=több|válasz=1,2,3}} | ||
# A Proxy mintában van egy interfész/ősosztály, mely elrejti a kliens számára, hogy nem az eredeti, hanem egy proxy objektummal kommunikál. | # A Proxy mintában van egy interfész/ősosztály, mely elrejti a kliens számára, hogy nem az eredeti, hanem egy proxy objektummal kommunikál. | ||
# A Proxy tervezési minta lehetővé teheti, hogy egy objektumhoz más objektumok szabályozott módon férhessenek hozzá. | # A Proxy tervezési minta lehetővé teheti, hogy egy objektumhoz más objektumok szabályozott módon férhessenek hozzá. | ||
# A Proxy mintában a kliens objektum kéréseit az alkalmazás futása közben egy proxy objektum fogadja (vagyis a kliens egy proxy objektummal van közvetlen kapcsolatban). | # A Proxy mintában a kliens objektum kéréseit az alkalmazás futása közben egy proxy objektum fogadja (vagyis a kliens egy proxy objektummal van közvetlen kapcsolatban). | ||
# A Proxy tervezési minta lehetővé teszi objektumok fastruktúrába szervezését. | # A Proxy tervezési minta lehetővé teszi objektumok fastruktúrába szervezését. | ||
== Adottak az alábbi állítások különböző tervezési mintákkal kapcsolatban! Jelölje meg, mely állítások igazak. FIGYELEM, akárhány helyes válasz létezhet! (2023 jan) == | == Adottak az alábbi állítások különböző tervezési mintákkal kapcsolatban! Jelölje meg, mely állítások igazak. FIGYELEM, akárhány helyes válasz létezhet! (2023 jan) == | ||
{{Kvízkérdés|típus=több|válasz= | {{Kvízkérdés|típus=több|válasz=1,3}} | ||
# Az Adapter tervezési mintában az Adapter osztály a Target osztályból származik (vagy a Target interfészt implementálja). | # Az Adapter tervezési mintában az Adapter osztály a Target osztályból származik (vagy a Target interfészt implementálja). | ||
# Az Adapter tervezési mintában (legalábbis annak object adapter változatában) az Adaptee (adaptálandó) osztály - amennyibe lehetősége van rá - továbbítja (delegálja) a kéréseket az Adapter (adapter) osztálynak. | # Az Adapter tervezési mintában (legalábbis annak object adapter változatában) az Adaptee (adaptálandó) osztály - amennyibe lehetősége van rá - továbbítja (delegálja) a kéréseket az Adapter (adapter) osztálynak. | ||
| 126. sor: | 119. sor: | ||
# Az Adapter minta Object Adapter változatában a Target osztály az Adaptee osztályból származik | # Az Adapter minta Object Adapter változatában a Target osztály az Adaptee osztályból származik | ||
== A feladat fájlrendszerbeli mappák és bennük levő fájlok nyilvántartása egy adott objektumstrukturában. Az egyes fájlokról a nevüket és a méretüket, valamint a mappákra a nevüket kell nyilvántartani (memóriában). (2023 jan)== | == A feladat fájlrendszerbeli mappák és bennük levő fájlok nyilvántartása egy adott objektumstrukturában. Az egyes fájlokról a nevüket és a méretüket, valamint a mappákra a nevüket kell nyilvántartani (memóriában). (2023 jan) == | ||
Elegáns megoldást szeretnénk a következőre: | Elegáns megoldást szeretnénk a következőre: | ||
* Mappa tartalmának listázásakor a mappában levő fájlok és a közvetlen benne levő mappák nevét és méretét kell kiírni a konzolra. | * Mappa tartalmának listázásakor a mappában levő fájlok és a közvetlen benne levő mappák nevét és méretét kell kiírni a konzolra. | ||
| 213. sor: | 206. sor: | ||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | (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}} | {{Kvízkérdés|típus=több|válasz=2,3}} | ||
# Amikor egy AutoResetEvent objektum jelzett állapotba kerül, valamennyi rá várakozó szál tovább futhat. | |||
# .NET környezetben egy folyamat (processz) akkor áll le, ha az összes előtérszála leáll. | |||
# Egy változó növelése a ++ operátorral nem szálbiztos (nem thread safe). | |||
== Az alábbi állítások a .NET Framework platformra vonatkoznak! Jelölje meg, mely állítások igazak! FIGYELEM, akárhány helyes válasz létezhet! (2023 jan) == | == Az alábbi állítások a .NET Framework platformra vonatkoznak! Jelölje meg, mely állítások igazak! FIGYELEM, akárhány helyes válasz létezhet! (2023 jan) == | ||
(A feladat csak akkor ér pontot, ha minden helyes választ -- és csakis ezeket -- megjelöl.) | (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,4}} | {{Kvízkérdés|típus=több|válasz=1,3,4}} | ||
# A JIT compiler feladata, hogy a szerelvények IL kódját jellemzően azok futtatásakor gépi kódra fordítsa | |||
# Az azonosított .NET szerelvényeket csak egy alkalmazás használhatja | |||
# Egy alkalmazás több szerelvényből is állhat | |||
# Amikor egy .NET alapú projektet - speciálisabb beállítások alkalmazása nélkül - lefordítunk, olyan .NET szerelvény (exe, dll) születik, mely IL (Intermediate Language) kódú utasításokat tartalmaz | |||
== Adott az alábbi Pipes and filters (csővezeték) architektúra filter megvalósítás pszeudokód: (2023 jan) == | == Adott az alábbi Pipes and filters (csővezeték) architektúra filter megvalósítás pszeudokód: (2023 jan) == | ||
| 239. sor: | 232. sor: | ||
{{Kvízkérdés|típus=egy|válasz=2}} | {{Kvízkérdés|típus=egy|válasz=2}} | ||
# Csővezeték által vezérelt | # Csővezeték által vezérelt | ||
# Aktív szűrő által | # Aktív szűrő által vezérelt | ||
# Passzív szűrő által vezérelt | # Passzív szűrő által vezérelt | ||
# Adatforrás által vezérelt | # Adatforrás által vezérelt | ||
| 245. sor: | 238. sor: | ||
== 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! (2023 jan) == | == 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! (2023 jan) == | ||
(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}} | {{Kvízkérdés|típus=több|válasz=1,3}} | ||
# Feltéve, hogy adott egy Circle osztály és annak egy int típusú Radius tulajdonsága (property), valamint a Circle osztály egy circle nevű példánya/objektuma, akkor a tulajdonság lekérdezése pl. az int n = circle.Radius; formában lehetséges. | # Feltéve, hogy adott egy Circle osztály és annak egy int típusú Radius tulajdonsága (property), valamint a Circle osztály egy circle nevű példánya/objektuma, akkor a tulajdonság lekérdezése pl. az int n = circle.Radius; formában lehetséges. | ||
# Egy C# attribútum alkalmazásakor az attribútum neve elé a @ karaktert kell tenni. | # Egy C# attribútum alkalmazásakor az attribútum neve elé a @ karaktert kell tenni. | ||
| 288. sor: | 281. 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) == | ||
| 325. sor: | 432. sor: | ||
{{Kvízkérdés|típus=több|válasz=2,4}} | {{Kvízkérdés|típus=több|válasz=2,4}} | ||
# C# kódot a JIT compiler fordítja köztes (IL) kódra | # C# kódot a JIT compiler fordítja köztes (IL) kódra | ||
# A .NET IL kód processzor és architektúra független | # A .NET IL kód processzor és architektúra független | ||
# .NET környezetben az objektumok azonnal felszabadulnak, amint az utolsó hivatkozás is megszűnik rájuk | # .NET környezetben az objektumok azonnal felszabadulnak, amint az utolsó hivatkozás is megszűnik rájuk | ||
# Egy alkalmazás több szerelvényből is állhat | # Egy alkalmazás több szerelvényből is állhat | ||
| 355. sor: | 462. sor: | ||
# public LengthChangedDelegate LengthChanged; | # public LengthChangedDelegate LengthChanged; | ||
# event void LengthChanged(int oldValue, int newValue); | # event void LengthChanged(int oldValue, int newValue); | ||
# delegate void LengthChangedDelegate(int oldValue, int newValue); | # delegate void LengthChangedDelegate(int oldValue, int newValue); | ||
# public delegate LengthChangedDelegate LengthChanged; | # public delegate LengthChangedDelegate LengthChanged; | ||
# public event LengthChangedDelegate LengthChanged(int oldValue, int newValue); | # public event LengthChangedDelegate LengthChanged(int oldValue, int newValue); | ||
# public LengthChangedDelegate LengthChanged(int oldValue, int newValue); | # public LengthChangedDelegate LengthChanged(int oldValue, int newValue); | ||
# public event LengthChangedDelegate LengthChanged; | # public event LengthChangedDelegate LengthChanged; | ||
# if (LengthChangedDelegate != null) | # if (LengthChangedDelegate != null) | ||
# if (LengthChanged != null) | # if (LengthChanged != null) | ||
# LengthChangedDelegate(oldValue, newValue); | # LengthChangedDelegate(oldValue, newValue); | ||
# LengthChanged(oldValue, newValue); | # LengthChanged(oldValue, newValue); | ||
| 522. sor: | 629. sor: | ||
# Strategy | # Strategy | ||
# Factory method | # Factory method | ||
== Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, mely állítások igazak. FIGYELEM, több helyes válasz is létezhet! (2020 jan) == | |||
{{Kvízkérdés|típus=több|válasz=4}} | |||
# A C# property-k 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. | |||
# C# event-re feliratkozni az "=" operátorral lehet. | |||
# C# event tagváltozóra helyes példa a következő: <pre>event int CompareDelegate(object a, object b);</pre> | |||
# C# event tag értéke null abban az esetben, ha nincs az eseményre feliratkozó. | |||
== Adott az alábbi C# nyelvü .NET alkalmazás kódrészlet, melyben a .NET beépített List<T> osztályát használjuk (és nem lehet helyette más osztályt használni). (2020 jan) == | |||
<pre> | |||
class DataProcessor | |||
{ | |||
static List<int> items = new List<int>(); | |||
object syncObject = new object(); | |||
public int GetItem(int index) { | |||
lock (syncObject) { return items[index]; } | |||
} | |||
public void AddItem(int n) { | |||
lock syncObject { items.Add(n); } | |||
} | |||
} | |||
</pre> | |||
Jelölje meg a helyes állítást! | |||
{{Kvízkérdés|típus=egy|válasz=2}} | |||
# A megoldás jelen formájában nem szálbiztos (thread safe), de azzá tehető, ha GetItem és az AddItem müveletek fejlécsorát - a public kulcsszót követően - kiegészítjük a synchronized kulcsszóval. | |||
# A megoldás jelen formájában nem szálbiztos (thread safe), de azzá tehető, ha a syncObject tagváltozó elé a static kulcsszót beírjuk. | |||
# A megoldás szálbiztos (thread safe), és nem tehető triviális módon hatékonyabbá. | |||
# A megoldás szálbiztos (thread safe), és a GetItem müveletben a lock eltávolításával hatékonyabbá tehető (hiszen a GetItem nem módosít állapotot). | |||
# A megoldás szálbiztos (thread safe), és a lock utasítások eltávolításával hatékonyabbá tehető. | |||
== Jelölje meg, hogy a .NET Framework esetében mely állítások igazak! FIGYELEM, több helyes válasz is létezhet! (2020 jan) == | |||
{{Kvízkérdés|típus=több|válasz=3,4}} | |||
# Az alábbi forgatókönyv a klasszikus DLL hell probléma legjellemzőbb esetének jó definíciója: egy alkalmazás telepítésekor hiányzik egy vagy több DLL a célkörnyezetben, mely szükséges lenne az alkalmazás futásához, így az alkalmazás nem müködik megfelelően (mert a szükséges DLL-ek telepítéséről a felhasználó nem gondoskodott). | |||
# A .NET IL kód nagyon hatékony, mert a processzorok közvetlenül tudják futtatni. | |||
# Az azonosított (erős névvel aláírt) szerelvények lehetővé teszik, hogy több kiadó/fejlesztőcég azonos (fájl)névvel és azonos verzióval telepítsen .NET szerelvényeket. | |||
# A privát szerelvényeket egyszerúbb telepíteni, mint az azonosított szerelvényeket. | |||
== Jelölje meg, mely állítások igazak a szálkezelésre .NET környezetben! FIGYELEM, több helyes válasz is létezhet! (2020 jan) == | |||
{{Kvízkérdés|típus=több|válasz=2}} | |||
# A ManualResetEvent osztályt jellemzően arra használjuk, hogy adott erőforrás elérésére vonatkozó kölcsönös kizárást valósítsunk meg a segítségével. | |||
# A Mutex előnye a lock utasítással szemben, hogy különböző folyamatok szálai között is használható. | |||
# Az x++ müvelet .NET környezetben atomi (és így szálbiztos), ha az x típusa int (32 bites). | |||
# A ReaderWriterLock használata akkor célszerủ a lock utasítással szemben, ha egy olyan erőforrást védünk vele, melyet gyakran írunk és ritkán olvasunk. | |||
== Adott az alábbi Pipes and filters (csővezeték) architektúra filter megvalósítás pszeudokód: (2020 jan) == | |||
<pre> | |||
void Run() | |||
{ | |||
Data data; | |||
while(data = inputPipe.Read()) | |||
{ | |||
Data processedData = ProcessData(data); | |||
outputPipe.Write(processedData); | |||
} | |||
} | |||
</pre> | |||
Melyik forgatókönyvnek felel meg a fenti kód? Jelölje meg a helyes választ! | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# Adatforrás által vezérelt | |||
# Adatnyelő által vezérelt | |||
# Csővezeték által vezérelt | |||
# Aktív szürő által vezérelt | |||
# Passzív szưrő által vezérelt | |||
== Adottak az alábbi állítások a kétrétegű, valamint a háromrétegü architektúrával kapcsolatban! Jelölje meg, mely állítások igazak! (2020 jan) == | |||
FIGYELEM, több helyes válasz is létezhet! | |||
{{Kvízkérdés|típus=több|válasz=2,3,4}} | |||
# A kétrétegü architektúrát ma már soha nem használjuk a háromrétegü architektúra előnyei miatt. | |||
# A kétrétegü architektúra lehetővé teszi, hogy ugyanahhoz az adatbázishoz több kliensalkalmazást készítsünk. | |||
# A háromrétegü architektúra lehetővé teszi, hogy adott üzleti logikához egyszerűen készítsünk különböző frontend alkalmazásokat, úgymint desktop, web, mobil. | |||
# A háromrétegü architektúra előnye a kétrétegüvel szemben, hogy az adatbázis sémája a kliensalkalmazástól függetlenül egyszerübben átszervezhető. | |||
== Melyek a Singleton tervezési minta megvalósításának kellékei? Jelölje meg a helyes válaszokat! FIGYELEM, több helyes válasz is létezhet! (2020 jan) == | |||
{{Kvízkérdés|típus=több|válasz=2,3,6}} | |||
# Globális változó | |||
# Statikus tagváltozó | |||
# Statikus metódus vagy statikus property | |||
# Virtuális metódus | |||
# Absztrakt metódus | |||
# Védett konstruktor | |||
# Védett destruktor | |||
# Globális pointer vagy referencia | |||
== Egy alkalmazásban a CommHandler osztály felelős egy külső rendszer adott szolgáltatásainak eléréséért. A CommHandler osztályt a felhasználói/kliensei egy interfész típusként (ICommHandler) kapják meg és használják. Egy új, jogosultság hozzáférést ellenőrző objektumot szeretnénk beékelni az osztály és a felhasználói közé olyan módon, hogy az osztályt és a felhasználóit a lehető legkevésbé érintse a változtatás. Mely tervezési mintát a legcélszerübb választani a probléma megoldására? Jelölje meg a helyes választ! (2020 jan) == | |||
{{Kvízkérdés|típus=egy|válasz=4}} | |||
# Factory method | |||
# Abstract factory | |||
# Composite | |||
# Proxy | |||
# Observer | |||
# Adapter | |||
# Singleton | |||
# Strategy | |||
== Adottak az alábbi állítások a Memento tervezési mintával kapcsolatban. Jelölje meg a helyes válaszokat! FIGYELEM, több helyes válasz is létezhet! (2020 jan) == | |||
{{Kvízkérdés|típus=több|válasz=2,3,6}} | |||
# A 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 a Memento állapotát állítja. | |||
# A 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 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 mintában a CareTaker Originator objektumokat tárol. | |||
# A mintában az Originator osztályt becsomagoljuk egy Memento objektummal, a Memento tárolja az Originator állapotát. | |||
# A minta elérhetővé teszi a külvilág számára az objektum belső állapotát az egységbezárás megsértése nélkül (vagyis anélkül, hogy publikussá tennénk az állapotát). | |||
== A Composite tervezési minta fontosabb osztályai a következők: Client, Component, Composite (összetett) és Leaf (levél). Jelölje meg a helyes választ! (2020 jan) == | |||
{{Kvízkérdés|típus=egy|válasz=1}} | |||
# A Composite osztálynak van egy Component gyüjteménye. | |||
# A Component osztálynak van egy gyüjteménye Composite, valamint egy másik gyüjteménye Leaf objektumokból. | |||
# A Component osztálynak van egy közös gyüjteménye (heterogén kollekció) Composite és Leaf objektumokból. | |||
# A Composite osztálynak van egy gyüjteménye Component, valamint egy másik gyưjjteménye Leaf objektumokból. | |||
# A Client osztálynak van egy gyűjteménye Composite, valamint egy másik gyüjteménye Leaf objektumokból. | |||