„Záróvizsga kvíz - Sznikák” változatai közötti eltérés
kérdések hozzáadása |
kérdések hozzáadása |
||
| 371. sor: | 371. sor: | ||
{ | { | ||
lock (syncRoot1) //*5 | lock (syncRoot1) //*5 | ||
{ return val; } | |||
} | } | ||
public void SetValue(long v) // *6 | public void SetValue(long v) // *6 | ||
{ | { | ||
lock (syncRoot2) // *7 | lock (syncRoot2) // *7 | ||
{ val = v; } | |||
} | } | ||
} | } | ||
| 636. sor: | 636. 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=egy|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. | |||