„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; }
            { return val; }
     }
     }
     public void SetValue(long v) // *6
     public void SetValue(long v) // *6
     {
     {
         lock (syncRoot2) // *7
         lock (syncRoot2) // *7
          { val = v; }
            { 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.