„Sznikák vizsga kikérdező” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
a (Új kérdések hozzáadása.)
a (Új kérdések hozzáadása.)
322. sor: 322. sor:
 
== Egy nem statikus változót célszerű statikus lockkal (osztályszintű zárral) védeni, mert ez hatékonyabb megoldást jelent. ==
 
== Egy nem statikus változót célszerű statikus lockkal (osztályszintű zárral) védeni, mert ez hatékonyabb megoldást jelent. ==
 
{{kvízkérdés|típus=egy|válasz=2|pontozás=-}}
 
{{kvízkérdés|típus=egy|válasz=2|pontozás=-}}
 +
# Igaz
 +
# Hamis
 +
 +
== C# nyelven a statikus tagváltozókat statikus lock objektummal kell védeni (a lock paraméterében statikus tagváltozót használni), mert nem statikus lock objektum alkalmazása esetén nem teljesülne a kölcsönös kizárás. ==
 +
{{kvízkérdés|típus=egy|válasz=1|pontozás=-}}
 
# Igaz
 
# Igaz
 
# Hamis
 
# Hamis
421. sor: 426. sor:
 
# Igaz
 
# Igaz
 
# Hamis
 
# Hamis
 +
 +
== Jelölje meg, mely állítások igazak a Pipes and Filters architektúrára. ==
 +
{{kvízkérdés|típus=több|válasz=1,2|pontozás=-}}
 +
# Egyik előnye, hogy a filterek tetszőlegesen kombinálhatók.
 +
# Egyik előnye a párhuzamos feldolgozás lehetősége (aktív szűrők esetén).
 +
# Adatnyelő által vezérelt architektúra esetén a szűrő egy ciklusban dolgozza fel a bemenetére érkező adatokat.
  
 
== Adottak az alábbi állítások a Document-View (Dokumentum-Nézet) architektúra vonatkozásában. Jelölje meg, mely állítások igazak!
 
== Adottak az alábbi állítá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! ==
 
FIGYELEM, akárhány helyes válasz létezhet! ==
{{kvízkérdés|típus=több|válasz=3,4|pontozás=-}}
+
{{kvízkérdés|típus=több|válasz=3,4,5|pontozás=-}}
 
# A Document-View architektúrában a Controller osztály feladata a felhasználói interakciók kezelése.
 
# A Document-View architektúrában a Controller osztály feladata a felhasználói interakciók kezelése.
 
# A Document-View architektúrában a dokumentumban külön tagváltozót vezetünk be minden egyes nézetre.
 
# A Document-View architektúrában a dokumentumban külön tagváltozót vezetünk be minden egyes nézetre.
 
# A Document-View architektúrában a dokumentumnak van egy vagy több olyan művelete, mellyel az állapotát a nézetek bármikor le tudják kérdezni.
 
# A Document-View architektúrában a dokumentumnak van egy vagy több olyan művelete, mellyel az állapotát a nézetek bármikor le tudják kérdezni.
 
# A Document-View architektúrában a nézetnek van egy hivatkozása a dokumentumára.
 
# A Document-View architektúrában a nézetnek van egy hivatkozása a dokumentumára.
 +
# A dokumentumnak van egy listája a beregisztrált nézeteire.
  
 
== Adott az alábbi Pipes and filters architektúra, filter  megvalósítás pszeudokód.  Melyik forgatókönyv felel meg a fenti kódnak? <br> ==
 
== Adott az alábbi Pipes and filters architektúra, filter  megvalósítás pszeudokód.  Melyik forgatókönyv felel meg a fenti kódnak? <br> ==
476. sor: 488. sor:
  
 
== 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! ==
 
== 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! ==
{{kvízkérdés|típus=több|válasz=1,2,4|pontozás=-}}
+
{{kvízkérdés|típus=több|válasz=1,2,4,5,6,7|pontozás=-}}
 
# Az Adapter tervezési mintában a Client osztálynak van egy Target típusú mutatója vagy hivatkozása az Adapter osztály egy példányára.
 
# Az Adapter tervezési mintában a Client osztálynak van egy Target típusú mutatója vagy hivatkozása az Adapter osztály egy példányára.
 
# 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 minta Object Adapter változatában a Adaptee implementálja a Target interfészt (vagy a Target osztályból származik).
 
# Az Adapter minta Object Adapter változatában a Adaptee implementálja a Target interfészt (vagy a Target osztályból származik).
 
# Az Adapter tervezési mintában (legalábbis annak object adapter változatában) az Adapter (adaptáló) osztály – amennyibe lehetősége van rá – továbbítja (delegálja) a kéréseket az Adaptee (adaptálandó) osztálynak.
 
# Az Adapter tervezési mintában (legalábbis annak object adapter változatában) az Adapter (adaptáló) osztály – amennyibe lehetősége van rá – továbbítja (delegálja) a kéréseket az Adaptee (adaptálandó) osztálynak.
 +
# Bár az Adaptert tervezési mintának tekintik, valójában ez egy idióma, mert csak egy adott programozási nyelv kontextusában (Java) használatos.
 +
# A 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.
  
 
== Egy online bolt alkalmazásban a feladata egy a bevásárlókosár lezárását (szállítási cím kezelése, megerősítés, fizetés) kezelő osztály megvalósítása. Az osztálynak több fizetési módot (pl. bankkártya, átutalás) kell támogatnia, és könnyen kiterjeszthetőnek kell lennie újabb fizetési módokkal. Mely tervezési mintát alkalmazná a megvalósítás során? ==
 
== Egy online bolt alkalmazásban a feladata egy a bevásárlókosár lezárását (szállítási cím kezelése, megerősítés, fizetés) kezelő osztály megvalósítása. Az osztálynak több fizetési módot (pl. bankkártya, átutalás) kell támogatnia, és könnyen kiterjeszthetőnek kell lennie újabb fizetési módokkal. Mely tervezési mintát alkalmazná a megvalósítás során? ==
492. sor: 507. sor:
 
# Factory method
 
# Factory method
 
# Adapter
 
# Adapter
 +
# Abstract factory
 +
 +
== Az egyik tervezési minta azt javasolja, hogy a származtatás/komplex hierarchia helyett az osztály viselkedésének különböző aspektusait kompozícióval tegyük paraméterezhetővé. Melyzik ez a tervezési minta? ==
 +
{{kvízkérdés|típus=egy|válasz=4|pontozás=-}}
 +
# Composite
 +
# Memento
 +
# Observer
 +
# Strategy
 +
# Singleton
 +
# Proxy
 +
# Factory method
 +
# Adapter
 +
# Abstract factory
 +
 +
 +
== A feladatunk egy ablakozós keretrendszer kifejlesztése. A keretrendszerben bevezetünk egy absztrakt Window osztályt, melyből a keretrendszerre épülő alkalmazások fejlesztésekor le kell származtatni és meg kell valósítani az alkalmazásspecifikus ablak viselkedését. A keretrendszerben egy WindowManager osztályt is megvalósítunk, melynek felelőssége bizonyos feltételek esetén a Window leszármazott objektumok létrehozása, tárolása és menedzselése. A felületelemek vonatkozásában (pl. Button, Dropdown, stb.) az alkalmazásfejlesztőknek nem kell a keretrendszer osztályaiból leszármaztatni. Mely tervezési mintát a legcélszerűbb választani a Window leszármaztatott osztály keretrendszeren belüli létrehozására? Olyan megoldást válasszo, mely a legkevesebb új osztály bevezetésével jár. ==
 +
{{kvízkérdés|típus=egy|válasz=7|pontozás=-}}
 +
# Composite
 +
# Memento
 +
# Observer
 +
# Strategy
 +
# Singleton
 +
# Proxy
 +
# Factory method
 +
# Adapter
 +
# Abstract factory
 +
 +
== Feladatunk egy olyan alkalmazás megtervezése, mely szervezetek osztályainak hierarchiáját képes egy diagramon megjeleníteni. Egy szervezeten belül lehetnek osztályok és személyek, az osztályokon belül további osztályok és személyek, tetszőleges mélységben. Mely tervezési mintát a legcélszerűbb választani a probléma modellezésére? ==
 +
{{kvízkérdés|típus=egy|válasz=8|pontozás=-}}
 +
# Prototype
 +
# Memento
 +
# Observer
 +
# Strategy
 +
# Singleton
 +
# Proxy
 +
# Factory method
 +
# Composite
 
# Abstract factory
 
# Abstract factory
  
512. sor: 564. sor:
  
 
== Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, hogy mely állítások igazak. ==
 
== Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, hogy mely állítások igazak. ==
{{kvízkérdés|típus=több|válasz=4|pontozás=-}}
+
{{kvízkérdés|típus=egy|válasz=4|pontozás=-}}
 
# 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.
 
# 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# eventre feliratkozni az "=" operátorral lehet.
 
# C# eventre feliratkozni az "=" operátorral lehet.
# C# event tagváltozóre helyes példa a következő: event int CompareDelegate(object a, object b);
+
# C# event tagváltozóra helyes példa a következő: <code>event int CompareDelegate(object a, object b);</code>
 
# C# event tag értéke null abban az esetben, ha nincs az eseményre feliratkozó.
 
# C# event tag értéke null abban az esetben, ha nincs az eseményre feliratkozó.
 +
 +
== Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, hogy mely állítások igazak. ==
 +
{{kvízkérdés|típus=több|válasz=2,5|pontozás=-}}
 +
# A C# attribútumok definiálásakor egy get és egy set blokkot adunk meg, melyek az attribútum lekérdezésekor, illetve beállításakor hívódnak meg (nem kötelező mindkettőt megadni).
 +
# C# delegate objektumot át lehet adni függvényparaméterként is.
 +
# C# delegate típus definícióra szintaktikailag helyes példa a következő: <code>event int CompareDelegate(object a, object b);</code>
 +
# C# event események vonatkozásában a -= operátor valamennyi előfizetőt leiratkoztat.
 +
# Egy delegate objektum/változó több metódusra is hivatkozhat.
 +
 +
== Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, hogy mely állítások igazak. ==
 +
{{kvízkérdés|típus=több|válasz=1,2,3,5|pontozás=-}}
 +
# A C# attribútumok 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# eventre feliratkozni a "+=" operátorral lehet.
 +
# C# delegate típus definícióra szintaktikailag helyes példa a következő: <code>delegate int CompareDelegate(object a, object b);</code>
 +
# C# események elsütésekor a beregisztrált eseménykezelő függvények a hatékonyság érdekében külön szálakon hívódnak meg.
 +
# Egy osztály több eseményt is publikálhat.
  
 
== Jelöje meg, hogy a .NET Framework esetében mely állítások igazak! ==
 
== Jelöje meg, hogy a .NET Framework esetében mely állítások igazak! ==
{{kvízkérdés|típus=több|válasz=3,4|pontozás=-}}
+
{{kvízkérdés|típus=több|válasz=2,4,5|pontozás=-}}
 
# 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).
 
# 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 processzor-és architektúrafüggetlen.
 
# A .NET IL kód nagyon hatékony, mert a processzorok közvetlenül tudják futtatni.  
 
# 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 a több kiadó/fejlesztőcég azonos fájlnévvel és azonos verzióval telepítsen .NET szerelvényeket.
 
# Az azonosított (erős névvel aláírt) szerelvények lehetővé teszik, hogy a több kiadó/fejlesztőcég azonos fájlné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.  
 
# A privát szerelvényeket egyszerűbb telepíteni, mint az azonosított szerelvényeket.  
  
== ==
+
== Az alábbiak közül melyik definiálja a legjobban a klasszikus DLL hell problémát? ==
{{kvízkérdés|típus=egy több|válasz=|pontozás=-}}
+
{{kvízkérdés|típus=több|válasz=3|pontozás=-}}
#  
+
# 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).
#  
+
# Egy alkalmazás telepítésekor felteszi a célkörnyezetbe az általa használt DLL-eket egy közös mappába. Ezeket a DLL-eket további alkalmazások is használják, melyek közül az egyik eltávolításakor (uninstall) a DLL-ek egy része eltávolításra kerül, így az alkalmazásunk működésképtelenné válik.
#  
+
# Egy alkalmazás telepítésekor felteszi a célkörnyezetbe az általa használt DLL-eket egy közös mappába. Később, egy másik alkalmazás a telepítésekor felülírja a korábban telepített alkalmazás egyik DLL-jét egy másik verzióval. A korábban telepített alkalmazás ezzel az újonnan telepített DLL-lel nem működik megfelelően.
#  
+
# Egy alkalmazás telepítésekor felülírja az operációs rendszer bizonyos DLL-jeit, mely következtében az operációs rendszer instabillá válik.
 +
 
 +
== Jelölje meg, mely állítások igazak a szálkezelésre .NET környezetben! ==
 +
{{kvízkérdés|típus=több|válasz=2,3,5,6|pontozás=-}}
 +
# 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ítunk meg a segítségével.
 +
# A ManualResetEvent osztályt jellemzően arra használjuk, hogy hatékonyan tudjunk várakozni más szál jelzésére.
 +
# 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ű használni kölcsönös kizárásra, ha a védett erőforrást gyakran olvassuk és ritkán írjuk.
 +
# Az x=10 művelet .NET környezetben atomi (és így szálbiztos), ha az x típusa int (32 bites).
 +
 
 +
== Adott az alábbi Pipes and filters (csővezeték) architektúra filter megvalósítás pszeudokód:<br>
 +
<code>
 +
void Write(Data data)<br>
 +
{<br>
 +
Data processedData = ProcessData(data);<br>
 +
nextFilter.Write(processedData);<br>
 +
}</code> ==
 +
{{kvízkérdés|típus=egy|válasz=1|pontozás=-}}
 +
# 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.
 +
 
 +
== Adott az alábbi Pipes and filters (csővezeték) architektúra filter megvalósítás pszeudokód:<br>
 +
<code>
 +
Data Read()<br>
 +
{<br>
 +
Data data = prevFilter.Read();<br>
 +
Data processedData = ProcessedData(data);
 +
return processedData;<br>
 +
}</code> ==
 +
{{kvízkérdés|típus=egy|válasz=2|pontozás=-}}
 +
# 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! ==
 +
{{kvízkérdés|típus=több|válasz=2,3,4|pontozás=-}}
 +
# 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 adott üzleti logikához egyszerűen készítsünk különböző frontend alkalmazásokat, úgy mint desktop, web, mobil.
 +
# 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, úgy mint 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! ==
 +
{{kvízkérdés|típus=több|válasz=2,3,6|pontozás=-}}
 +
# 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? ==
 +
{{kvízkérdés|típus=egy|válasz=4|pontozás=-}}
 +
# Factory method
 +
# Abstract method
 +
# Composite
 +
# Proxy
 +
# Observer
 +
# Adapter
 +
# Singleton
 +
# Strategy
 +
 
 +
== Egy kilens objektum egy nagy erőforrásigényű objektumot használ (pl. egy szövegszerkesztő nagyméretű képeket), a nagy erőforrásigényű objektumra, azonban nincs mindig szükség, igény esetén tölthető be. A betöltés előtt is szükség van azonban a nagy erőforrásigényű objektum bizonyos paramétereire. Mely tervezési mintát használná a probléma megoldására? ==
 +
{{kvízkérdés|típus=egy|válasz=4|pontozás=-}}
 +
# Factory method
 +
# Abstract method
 +
# Composite
 +
# Proxy
 +
# Observer
 +
# Adapter
 +
# Singleton
 +
# Strategy
 +
 
 +
 
 +
== A feladatunk egy keretrendszer megtervezése. A keretrendszerben létre kell hozni egy adott típusú objektumot, de annak típusát nem ismerjük, mert az csak a keretrendszerre épülő alkalmazás esetén dől el. Mely tervezési mintát használná a probléma megoldására? ==
 +
{{kvízkérdés|típus=egy|válasz=1|pontozás=-}}
 +
# Factory method
 +
# Abstract method
 +
# 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! ==
 +
{{kvízkérdés|típus=több|válasz=2,3,6,7|pontozás=-}}
 +
# 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 mintát használhatjuk az Undo funkció megvalósítására.
 +
 
 +
== 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! ==
 +
{{kvízkérdés|típus=egy|válasz=1|pontozás=-}}
 +
# 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űjteménye Leaf objektumokból.
 +
# A Client osztálynak van egy gyűjteménye Composite, valamint egy másik gyűjteménye Leaf objektumokból.
 +
 
 +
== 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).<br><code>
 +
class DataProcessor<br>
 +
{<br>
 +
List<int> items = new List<int>();<br>
 +
static object syncObject = new object();<br>
 +
public int GetItem(int index) {<br>
 +
lock (syncObject) { return items[index]; }<br>
 +
}<br>
 +
public void AddItem(int n) {<br>
 +
lock (syncObject) { items.Add(n); }<br>
 +
}<br>
 +
} </code>==
 +
{{kvízkérdés|típus=egy|válasz=3|pontozás=-}}
 +
# A megoldás jelen formájában nem szálbiztos (thread safe), de azzá tehető, ha a syncObject tagváltozó elől a static kulcsszót eltávolítjuk.
 +
# A megoldás szálbiztos (thread safe) és nem tehető triviális módon hatékonyabbá.
 +
# A megoldás szálbiztos (thread safe), de a syncObject tagváltozó előtti a static kulcsszó eltávolításával hatékonyabbá tehető.
 +
# A megoldás szálbiztos (thread safe), de a lock utasítások eltávolításával hatékonyabbá tehető.
 +
 
 +
== Adott az alábbi C# nyelvű .NET alkalmazás kódrészlet, mely egymásba ágyazott zárakat tartalmaz.
 +
<code><br>
 +
class Program<br>
 +
{<br>
 +
static object syncObject = new object();<br>
 +
static void Main(string[] args)<br>
 +
{<br>
 +
lock (syncObject) {<br>
 +
f();<br>
 +
}<br>
 +
}<br>
 +
static void f()<br>
 +
{<br>
 +
lock (syncObject) {<br>
 +
Console.WriteLine("Hello!");<br>
 +
}<br>
 +
}<br>
 +
}<br>
 +
</code> ==
 +
{{kvízkérdés|típus=egy|válasz=1|pontozás=-}}
 +
# Az alkalmazás kiírja a "Hello!" szöveget a konzolra.
 +
# Az alkalmazás soha nem fejezi be a futását, mert az f() függvényben a lock utasításnál már egy a Main függvényben zárolt objektumra próbál zárolni (holtpont alakul ki).
 +
# Az f() függvényben a lock utasítás kivételt dob annak érdekében, hogy ne alakuljon ki holtpont.
 +
 
 +
== Az alábbiak közül mely adatok teszik egyedivé az erős névvel ellátott (azonosított) .NET szerelvényeket? Jelölje meg a helyes választ! ==
 +
{{kvízkérdés|típus=egy|válasz=2|pontozás=-}}
 +
# Név, fejlesztő cég privát kulcsa, verzió, opcionális kultúra információ
 +
# Név, fejlesztő cég nyilvános kulcsa, verzió, opcionális kultúra információ
 +
# Név, verzió, pcionális kultúra információ
 +
# Név, fejlesztő cég nyilvános kulcsa, verzió, digitális aláírás, opcionális kultúra információ
  
== ==
+
== Adottak az alábbi állítások különböző tervezési mintákkal kapcsolatban! 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=több|válasz=1,2|pontozás=-}}
#  
+
# A Proxy tervezési mintában a Proxy objektum egy transzparens csomagoló az eredeti objektum körül, mely szabályozhatja az eredeti objektumhoz való hozzáférést.
#  
+
# Az Adapter minta - pontosabban annak Object Adapter változata - az objektum becsomagolásával teszi lehetővé, hogy az objektum interfésze kompatibilis legyen azzal, amit a kliens/környezete elvár.
#  
+
# A Singleton minta globális hozzáférést biztosít egy osztály egyetlen objektumához, és ezt az objektumot egy globális változóban tárolja.
#
 
  
== ==
+
== .NET környezetben egy szálban hatékonyan kell várakozni arra, hogy egy másik szál valamilyen adatot előkészítse a számára. Milyen szinkronizációs konstrukciót a legcélszerűbb erre használni? ==
{{kvízkérdés|típus=egy több|válasz=|pontozás=-}}
+
{{kvízkérdés|típus=egy|válasz=4|pontozás=-}}
#  
+
# lock
#  
+
# synchronized
#  
+
# Mutex
#  
+
# ManualResetEvet
 +
# ReaderWriterLock
 +
# Semaphore
  
== ==
+
== Adottak az alábbi állítások a Strategy tervezési mintával kapcsolatban. Jelölje meg, mely állítások igazak! ==
{{kvízkérdés|típus=egy több|válasz=|pontozás=-}}
+
{{kvízkérdés|típus=több|válasz=3,5|pontozás=-}}
#  
+
# A minta globális függvénypointereket vezet be annak érdekében, hogy a kliens szemszögéből az általa használt algoritmusok szabadon kicserélhetőek legyenek.
#  
+
# A minta lehetővé teszi, hogy egy adott osztály viselkedésének különböző aspektusai paraméterezhetőek legyenek. Mindezt elsődlegesen úgy éri el, hogy magából az osztályból számos leszármazottat vezet be (minden viselkedés kombinációhoz egyet).
#  
+
# A minta lehetővé teszi, hogy egy adott osztály viselkedésének különböző aspektusai paraméterezhetőek legyenek. Mindezt úgy, hogy minden aspektushoz egy osztályhierarchiát vezet be.
#  
+
# A mintában a Context (vagy Client) osztályban van egy vagy több mutató/referencia, mely típusa egy vagy több konkrét algoritmus implementáció.
 +
# 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% Jelölje meg, mely állítások igazak. ==
{{kvízkérdés|típus=egy több|válasz=|pontozás=-}}
+
{{kvízkérdés|típus=több|válasz=1,3,4|pontozás=-}}
#  
+
# 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.
#  
+
# 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.
  
 
==  ==
 
==  ==
565. sor: 793. sor:
 
#  
 
#  
 
#  
 
#  
#  
+
#
  
 
==  ==
 
==  ==
572. sor: 800. sor:
 
#  
 
#  
 
#  
 
#  
#  
+
#
  
 
==  ==
 
==  ==
579. sor: 807. sor:
 
#  
 
#  
 
#  
 
#  
#  
+
#
  
 
==  ==
 
==  ==
586. sor: 814. sor:
 
#  
 
#  
 
#  
 
#  
#  
+
#
  
 
==  ==
 
==  ==
593. sor: 821. sor:
 
#  
 
#  
 
#  
 
#  
#  
+
#
  
 
==  ==
 
==  ==

A lap 2023. január 4., 03:13-kori változata

← Vissza az előző oldalra – Szoftvertechnikák

Megjegyzés: A (?) jelölt kérdésekre a válasz nem 100%-ig helyes, amennyiben tudod rá a helyes választ, írd át a helyes megoldásra vagy épp szedd ki a ?-et a kérdésből, ha alapból jó a válasz, ezzel segítve a többiek, és az én munkámat! :)


ZH felkészítő kikérdező
Statisztika
Átlagteljesítmény
-
Eddigi kérdések
0
Kapott pontok
0
Alapbeállított pontozás
(+)
-
Beállítások
Minden kérdés látszik
-
Véletlenszerű sorrend
-
-


Tartalomjegyzék

Egy Windows Forms alapú alkalmazásban a célunk egy összetett (több vezérlőből álló), újrafelhasználható vezérlő kialakítása. Mit használna ehhez?

Típus: egy. Válasz: 6. Pontozás: -.

  1. Groupbox
  2. Checkbox osztályból származtatás
  3. Form
  4. Component
  5. CostumControl leszármaztatás
  6. UserControl
  7. Control leszármaztatás

Egy Windows Forms alapú alkalmazásban a célunk egy teljesen egyedi és újrafelhasználható vezérlő bevezetése, mely minden kattintásra egyel nagyobb értéket jelenít meg. Mit használna ehhez?

Típus: egy. Válasz: 6. Pontozás: -.

  1. Groupbox
  2. Checkbox osztályból származtatás
  3. Form
  4. Component
  5. CostumControl leszármaztatás
  6. UserControl
  7. Control leszármaztatás

Egy Windows Forms alapú alkalmazásban a célunk egy olyan testreszabott, újrafelhasználható checkbox (jelölőnégyzet) vezérlő bevezetése, amely minden egyes kattintáskor egy üzenetablakban megkérdezi a felhasználót, biztos-e a döntésében. Mit használna ehhez?

Típus: egy. Válasz: 2. Pontozás: -.

  1. Groupbox
  2. Checkbox osztályból származtatás
  3. Form
  4. Component
  5. CostumControl leszármaztatás
  6. UserControl
  7. Control leszármaztatás


Egy Windows Forms alapú alkalmazásban a célunk egy összetett (több vezérlőből álló) újrafelhasználható vezérlő kialakítása. Mit használna ehhez?

Típus: egy. Válasz: 6. Pontozás: -.

  1. Groupbox
  2. Checkbox osztályból származtatás
  3. Form
  4. Component
  5. CostumControl leszármaztatás
  6. UserControl
  7. Control leszármaztatás

Azonosított .NET szerelvényekből lehet két ugyanolyan nevű telepítve egy számítógépre.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Egy alkalmazáson belül a Windows üzenetek feldolgozása párhuzamos.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Egy privát .NET szerelvények telepítése egyszerű, csak fel kell másolni a számítógépre.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

.NET környezetben egy folyamat a kilépéskor bevárja az összes előtér szálat.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A C# delegate objektumok a C függvénypointerek modern megfelelői, ugyanakkor több függvényre is tudnak mutatni/hivatkozni.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

.NET környezetben egy objektumot gyakran olvasunk, de ritkán írunk. Mit használna a kölcsönös kizárás megvalósítására?

Típus: egy. Válasz: 3. Pontozás: -.

  1. WriterLock
  2. ReaderLock
  3. ReaderWriterLock
  4. ExecuterLock

Feladatunk egy Windows Forms alkalmazásban annak számolása és kirajzolása az ablak bal felső sarkában, hogy hányszor keletkezett érvénytelen terület. Mi(k)hez van erre szükség?

Típus: több. Válasz: 1,2,4. Pontozás: -.

  1. Invalidate hívása.
  2. Paint esemény kezelése vagy OnPaint felülírása.
  3. Timer
  4. Egy tagváltozó a darabszám értékének nyilvántartására.

A JIT fordító a köztes kódot fordítja natív gépi kódra.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Windows Forms vezérlők (Control) között lehetőség van a szülő/gyerek és birtokos/birtokolt viszony kialakítására.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A JIT fordító a C# kódot fordítja IL kódra.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

Egy Windows Forms úrlapra egy Panel objektumot helyezünk olyan módon, hogy a Panel és az űrlap szélei között marad szaba hely. Milyen technikával lehet legegyszerűbben elérni, hogy az űrlap magasságának növelésével a Panel magassága is változzon (ugyanannyival).

Típus: egy. Válasz: 2. Pontozás: -.

  1. Dockolás
  2. Anchor
  3. FillPanel
  4. Splitter
  5. Sticky container

A .NET Core csak Windowson fut.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

IL-t könnyű visszafejteni.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Windows Forms nem támogat lineáris transzformációkat.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

.NET beépített osztályok legtöbbje szálbiztos.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A Win32 API-t jellemzően C# nyelven programozzuk.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

A Win32 API függvények számos programozói környezetből, pl. .NET alól is elérhetők.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A Windows Forms alkalmazásokban van lehetőség a rajz, pl. szöveges 2 dimenziós térben történő elforgatására.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Egy Win32 üzenet billentyűlenyomás esetén tartalmazza a lenyomott billentyű kódját.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Egy Win32 CALLBACK függvény olyan függvény, amit az operációs rendszer valósít meg és mi hívunk az alkalmazás fejlesztése során.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

.NET környezetben egy többszálú alkalmazást készítünk, melyben az egyik szál lock utasítással zárat szerez előbb X, majd Y objektum paraméterekkel. Egy másik szál előbb az Y, majd az X paraméterekkel szerez zárat. Adja meg egy szóval, minek a veszélye áll fent egy ilyen forgatókönyv esetén?

Típus: egy. Válasz: 1. Pontozás: -.

  1. Deadlock
  2. Lock
  3. Thread-pool

A .NET Windows Forms bizonyos osztályai a beépített Component osztályból származnak. Mi ennek a következménye?

Típus: egy. Válasz: 1. Pontozás: -.

  1. Lehetőség van a Visual Studio designerében felparaméterezni.
  2. Natív ablakot csomagol be.
  3. Szülő-gyerek viszonyban állíthatók egymással.
  4. Örökli a vezérlőkre közös tulajdonságokat, mint pl. a helye, mérete, stb.

Feladatunk egy .NET alkalmazásban Oracle adatbázisban bizonyos rekordok módosítása. Mi(k)re van ehhez szükség?

Típus: több. Válasz: 4,6,7. Pontozás: -.

  1. SQLCommand
  2. SQLDataReader
  3. SQLConnection
  4. OracleConnection
  5. OracleDataReader
  6. OracleCommand
  7. Try/finally vagy using blokk

Feladatunk egy Windows Forms alkalmazásban annak számolása és kirajzolása az ablak bal felső sarkába, hogy hányszor keletkezett érvénytelen terület. Mi(k)hez van erre szükség?

Típus: több. Válasz: 1,4. Pontozás: -.

  1. Egy tagváltozó a darabszám értékének nyilvántartására.
  2. Invalidate hívása.
  3. Timer.
  4. Paint esemény kezelése vagy OnPaint felülírása.

C# nyelvű kódunkban egy olyan objektumot hozunk létre, mely nem felügyelt erőforrást használ/csomagol be. Milyen C# konstrukciót használunk ilyen esetben ha biztosítani szeretnénk a nem felügyelt erőforrás mielőbbi felszabadítását, miután befejeztük a használatát?

Típus: egy. Válasz: 5. Pontozás: -.

  1. Destroy
  2. Discard
  3. Using blokk
  4. Finalize
  5. Destuktor

Egy C# eseményre feliratkozni az = operátorral lehet.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

Milyen lépéseket tartalmaz jellemzően egy meglévő modális dialógusablak használata?

Típus: több. Válasz: 2,5,6. Pontozás: -.

  1. A dialógusablakon levő vezérlők közvetlen inicializálása.
  2. A dialógusablak visszatérésének (DialogResult) vizsgálata.
  3. A dialógusablakon levő vezérlők inicializálása property-k (tulajdonságok) segítségével.
  4. MessageBox megjelenítés.
  5. Dialógusablak megjelenítése.
  6. Dialógusablak példányosítása.
  7. Időzítő felparaméterezése.

Windows Forms vezérlők (Control) között lehetőség van szülő/gyerek viszony kialakítására.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

.NET környezetben egy kiszolgáló alkalmazást készítünk, melynek egyidőben nagyon sok klienst kell tudni kiszolgálnia. Adja meg annak a .NET fogalomnak/osztálynak a nevét maximum egy-két szóval, amit ilyen esetben a legcélszerűbb használni a klisensek hatékony párhuzamos kiszolgálása érdekében.

Típus: egy. Válasz: 3. Pontozás: -.

  1. Deadlock
  2. Lock
  3. Thread-pool
  4. Control.Invoke

C# nyelven az "@attribútumnév" szintaktikával lehet deklaratívan annotációkat osztályokhoz fűzni.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

Egy .NET alkalmazásban a .NET "megkerülésével", közvetlenül a Win32 API használatával erőforrásokat foglalunk egy osztályunkban (pl. fájlt nyitunk meg). Milyen műveletet/műveleteket írunk ilyen esetben? Több válasz is megadható!

Típus: egy. Válasz: 3. Pontozás: -.

  1. Deadlock
  2. Lock
  3. Thread-pool
  4. Dispose

Windows Forms nem modális dialógusablak a DialogResult-ban tudja jelezni, hogy a felhasználó Ok vagy Cancel gombbal zárta be a dialógus ablakot.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A .NET több programozási nyelvet is támogat.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Egy Windows Forms alapú alkalmazás esetén egy saját státuszbárt (? státuszsáv) szeretne megvalósítani. Ennek mindig a tartalmazó ablak alján kell elhelyezkednie fix magassággal (státuszbár az alsó/oldalsó élei és a tartalmazó űrlap élei között nem lehet szabad hely/rés). Milyen technikát legcélszerűbb ehhez választani?

Típus: egy. Válasz: 1. Pontozás: -.

  1. Dockolás
  2. Anchor
  3. FillPanel
  4. SplitContainer
  5. Splitter
  6. Sticky container
  7. Grid panel

Amikor egy AutoResetEvent objektum jelzett lesz, a rá várakozó szálak közül csak 1 futhat tovább.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Az AutoResetEvent osztályt jellemzően arra használjuk, hogy hatékonyan tudjunk várakozni más szál jelzésére.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Egy 32 bites számmal történő egyszerű értékadás .NET környezetben mindig atomi.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

.NET környezetben 2 folyamat között kölcsönös kizárás a lock utasítással megvalósítható.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Ha adott két objektum és ezekre a lock utasítással eltérő sorrendben szerez zárat két szál, nem alakulhat ki holtpont.(?)

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

.NET több nyelvet is támogat.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

.NET NuGet csomagok formájában lehet kiegészítő könyvtárakat letölteni.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

.NET Framework alapú konzol alkalmazások Linuxon is futnak.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

ReaderWriterLock osztály lehetővé teszi, hogy egy erőforrást több szál is írjon egyszerre.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

.JIT köztes kódot fordítja natív gépi kódra.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Amikor egy szál egy lock blokkon belül van, akkor más szál nem tartózkodhat olyan lock blokkon belül, melynek ugyanaz a szinkronizációs objektum a paramétere.(?)

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Egy változó növelése .NET környezetben atomi.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

Ha egy osztályban egy költséges, nem felügyelt erőforrást foglalunk (pl. Win32 API hívással) a konstruktorban és ezt az osztályban eltároljuk, akkor destruktort írunk az osztályba, mert az biztosítja az erőforrás mielőbbi felszabadítását, amint az osztály objektumát nem használjuk.(?)

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A közös dll-ek egy központi mappába történő telepítésének egyik előnye, hogy így minden esetben elkerülhető dll hell probléma.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

Egy nem statikus változót célszerű statikus lockkal (osztályszintű zárral) védeni, mert ez hatékonyabb megoldást jelent.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

C# nyelven a statikus tagváltozókat statikus lock objektummal kell védeni (a lock paraméterében statikus tagváltozót használni), mert nem statikus lock objektum alkalmazása esetén nem teljesülne a kölcsönös kizárás.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A .NET nem támogatja a (managed) C++ nyelvet.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

A C# kódból a fordítás során - amikor a szerelvény létrejön - köztes kód keletkezik, vagyis a szerelvények köztes (IL) kódot tartalmaznak.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A DLL hell probléma elkerülésének egyik módja, ha az alkalmazás által használt dll-eket nem egy központi helyre, hanem az alkalmazás mappájába telepítjük (privát telepítés).

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Az Adapter tervezési mintában (legalábbis annak object adapter változatában) az Adapter (adaptáló) osztály - amennyiben lehetősége van rá - továbbítja (delegálja) a kéréseket az Adaptee (adaptálandó) osztálynak.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A .NET szerelvények (exe, dll) natív gépi kódú utasításokat tartalmaznak.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A Windows Forms alkalmazásokban van lehetőség a rajz, pl. szöveg 3 dimenziós térben történő elforgatására.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

Windows Forms űrlapok (Form) között lehetőség van birtokos/birtokolt viszony kialakítására.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A Template method mintában az ősosztály működése a belőle való leszármaztatással és bizonyos absztrakt/virtuális műveleteinek felülírásával terjeszthető ki.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

A Win32 API függvények számos programozói környezetből, pl. .NET alól is elérhetők.

Típus: egy. Válasz: . Pontozás: -.

  1. Igaz
  2. Hamis

Adott egy osztály. Az objektumainak állapotát úgy szeretnénk elmenteni és visszaállítani egy másik osztályból, hogy nem tesszük publikussá a tagváltozóit. Mely tervezési mintát célszerű használni a megoldás során?

Típus: egy. Válasz: 6. Pontozás: -.

  1. Proxy
  2. Repository
  3. Strategy
  4. Command Processor
  5. Snapshot
  6. Memento
  7. Command

A Singleton tervezési minta célja mindösszesen az, hogy egy adott osztályból egyetlen példányt lehessen létrehozni.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

A .NET alkalmazásban a .NET "megkerülésével", közvetlenül a Win32 API használatával erőforrásokat foglalunk egy osztályba (pl. fájlt nyitunk meg). Ez esetben az osztályunkban írunk Dispose műveletet, mert az lehetővé teszi ezen erőforrások mielőbbi felszabadítását.(?)

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

A Dependency Injection tervezési minta lényege, hogy az osztály a függőségeit konstruktor vagy művelet paraméterekben kapja meg (interfész típusonként). (?)

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

C# nyelven egy eseményre kötelező legalább egy előfizetőt beregisztrálni.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

A szoftverarchitektúra jelentőségét szokás egy kiegyensúlyozott mérleggel is ábrázolni. Mire vonatkozik ez?

Típus: egy. Válasz: 1. Pontozás: -.

  1. A szoftvernek jól kell működnie (funkcionalitás), de ugyanilyen fontos, hogy legyen jól struktúrált.
  2. Az architektúra különböző aspektusainak, úgymint szerkezet, karbantarthatóság, tesztelhetőség egyensúlyban kell lennie.
  3. A szoftvert magas szinten alapvetően azonos léptékű modulokra célszerű bontani.
  4. Az architektúra/kód struktúrálás kihat a teljesítményre (pl. túl sok modul/réteg csökkenti a teljesítményt), ennek vonatkozásában meg kell találni az egyensúlyt.

A Singleton minta globális hozzáférést biztosít egy osztály egyetlen objektumához, és ezt az objektumot egy globális változóban tárolja.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

Egy .NET osztályunk konstruktorában nagyméretű .NET string tömböt foglalunk. Ez esetben írunk az osztályunkban destruktort és Dispose függvényt, melyben gondoskodunk a tömb felszabadításáról.

Típus: egy. Válasz: 2. Pontozás: -.

  1. Igaz
  2. Hamis

A Pipes and Filters architektúrában aktív szűrők esetében az adatok feldolgozása jellemzően egy ciklusban történik.

Típus: egy. Válasz: 1. Pontozás: -.

  1. Igaz
  2. Hamis

Jelölje meg, mely állítások igazak a Pipes and Filters architektúrára.

Típus: több. Válasz: 1,2. Pontozás: -.

  1. Egyik előnye, hogy a filterek tetszőlegesen kombinálhatók.
  2. Egyik előnye a párhuzamos feldolgozás lehetősége (aktív szűrők esetén).
  3. Adatnyelő által vezérelt architektúra esetén a szűrő egy ciklusban dolgozza fel a bemenetére érkező adatokat.

== Adottak az alábbi állítá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! ==

Típus: több. Válasz: 3,4,5. Pontozás: -.

  1. A Document-View architektúrában a Controller osztály feladata a felhasználói interakciók kezelése.
  2. A Document-View architektúrában a dokumentumban külön tagváltozót vezetünk be minden egyes nézetre.
  3. A Document-View architektúrában a dokumentumnak van egy vagy több olyan művelete, mellyel az állapotát a nézetek bármikor le tudják kérdezni.
  4. A Document-View architektúrában a nézetnek van egy hivatkozása a dokumentumára.
  5. A dokumentumnak van egy listája a beregisztrált nézeteire.

Adott az alábbi Pipes and filters architektúra, filter megvalósítás pszeudokód. Melyik forgatókönyv felel meg a fenti kódnak?

void Run()
{
Data data;
while(data = inputPipe.Read())
{
Data processedData = ProcessedData(data);
outputPipe.Write(processedData);
}
}
}

Típus: egy. Válasz: 4. Pontozás: -.

  1. Csővezeték által vezérelt.
  2. Passzív szűrő által vezérelt.
  3. Adatnyelő által vezérelt.
  4. Aktív szűrő által vezérelt.
  5. Adatforrás által vezérelt.

.NET környezetben egy munkaszálból szeretnénk egy a fő szálból létrehozott TextBox Text tulajdonságát lekérdezni. Adja meg milyen mechanizmust/műveletet kell ehhez használni?

Típus: egy. Válasz: 4. Pontozás: -.

  1. Deadlock
  2. Lock
  3. Thread-pool
  4. Control.Invoke

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!

Típus: több. Válasz: 1,3. Pontozás: -.

  1. .NET platformra lehet C++ nyelven is fejleszten.
  2. .NET környezetben az objektumok azonnal felszabadulnak, amint az utolsó hivatkozás is megszűnik rájuk.
  3. A .NET futtatókörnyezet rövid neve: CLR.

Adott az alábbi C# nyelvű .NET alkalmazás kódrészlet.
class Counter{
int counter = 0; // *1
object syncRoot = new object(); // *2
public int GetValue() // *3
{
lock (syncRoot)
{ return counter; }
}
public void IncreaseCounter(int delta) // *4
{
lock (syncRoot)
{ counter += delta; }
}
}

Típus: több. Válasz: 1,3. Pontozás: -.

  1. A *2 sor elejére nem kell plusszban beírni a static kulcsszót, anélkül is helyes a működés.
  2. A kód nem működne megfelelően, ha a *2 sorban a syncRoot típusát int-re cserélnénk.
  3. A *3 GetValue() függvényben a lock utasítás eltávolítható (ha legalább 32 bites környezetről van szó).
  4. A *4 IncreaseCounter() függvényben a lock utasítás eltávolítható
  5. A *4 IncreaseCounter() függvényben a lock utasítás eltávolítható, de akkor ki kell írni a függvény elé a synchronized kulcsszót.

== A feladat egy Car osztály elkészítése C# nyelven, mely egy eseménnyel jelzi, ha az autó sebessége meghalad egy adott sebességkorlátot! Adja meg, mely sorok alkalmazására van szükség a megoldásban, ha nem használhatja a ?. operátort! ==

Típus: több. Válasz: 2,4,9,12. Pontozás: -.

  1. event void SpeedLimitExceededDelegate(int speed, double percent);
  2. delegate void SpeedLimitExceededDelegate(int speed, double percent);
  3. public SpeedLimitExceededDelegate SpeedLimitExceeded;
  4. public event SpeedLimitExceededDelegate SpeedLimitExceeded;
  5. public delegate SpeedLimitExceededDelegate SpeedLimitExceeded;
  6. public event SpeedLimitExceededDelegate SpeedLimitExceeded(int speed, double percent);
  7. public SpeedLimitExceededDelegate SpeedLimitExceeded(int speed, double percent);
  8. public delegate SpeedLimitExceededDelegate SpeedLimitExceeded(int speed, double percent);
  9. if (SpeedLimitExceeded != null)
  10. if (SpeedLimitExceededDelegate != null)
  11. SpeedLimitExceededDelegate(speed, percent);
  12. SpeedLimitExceeded(speed, percent)

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!

Típus: több. Válasz: 1,2,4,5,6,7. Pontozás: -.

  1. Az Adapter tervezési mintában a Client osztálynak van egy Target típusú mutatója vagy hivatkozása az Adapter osztály egy példányára.
  2. Az Adapter tervezési mintában az Adapter osztály a Target osztályból származik (vagy a Target interfészt implementálja).
  3. Az Adapter minta Object Adapter változatában a Adaptee implementálja a Target interfészt (vagy a Target osztályból származik).
  4. Az Adapter tervezési mintában (legalábbis annak object adapter változatában) az Adapter (adaptáló) osztály – amennyibe lehetősége van rá – továbbítja (delegálja) a kéréseket az Adaptee (adaptálandó) osztálynak.
  5. Bár az Adaptert tervezési mintának tekintik, valójában ez egy idióma, mert csak egy adott programozási nyelv kontextusában (Java) használatos.
  6. A 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.
  7. 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.

Egy online bolt alkalmazásban a feladata egy a bevásárlókosár lezárását (szállítási cím kezelése, megerősítés, fizetés) kezelő osztály megvalósítása. Az osztálynak több fizetési módot (pl. bankkártya, átutalás) kell támogatnia, és könnyen kiterjeszthetőnek kell lennie újabb fizetési módokkal. Mely tervezési mintát alkalmazná a megvalósítás során?

Típus: egy. Válasz: 4. Pontozás: -.

  1. Composite
  2. Memento
  3. Observer
  4. Strategy
  5. Singleton
  6. Proxy
  7. Factory method
  8. Adapter
  9. Abstract factory

Az egyik tervezési minta azt javasolja, hogy a származtatás/komplex hierarchia helyett az osztály viselkedésének különböző aspektusait kompozícióval tegyük paraméterezhetővé. Melyzik ez a tervezési minta?

Típus: egy. Válasz: 4. Pontozás: -.

  1. Composite
  2. Memento
  3. Observer
  4. Strategy
  5. Singleton
  6. Proxy
  7. Factory method
  8. Adapter
  9. Abstract factory


A feladatunk egy ablakozós keretrendszer kifejlesztése. A keretrendszerben bevezetünk egy absztrakt Window osztályt, melyből a keretrendszerre épülő alkalmazások fejlesztésekor le kell származtatni és meg kell valósítani az alkalmazásspecifikus ablak viselkedését. A keretrendszerben egy WindowManager osztályt is megvalósítunk, melynek felelőssége bizonyos feltételek esetén a Window leszármazott objektumok létrehozása, tárolása és menedzselése. A felületelemek vonatkozásában (pl. Button, Dropdown, stb.) az alkalmazásfejlesztőknek nem kell a keretrendszer osztályaiból leszármaztatni. Mely tervezési mintát a legcélszerűbb választani a Window leszármaztatott osztály keretrendszeren belüli létrehozására? Olyan megoldást válasszo, mely a legkevesebb új osztály bevezetésével jár.

Típus: egy. Válasz: 7. Pontozás: -.

  1. Composite
  2. Memento
  3. Observer
  4. Strategy
  5. Singleton
  6. Proxy
  7. Factory method
  8. Adapter
  9. Abstract factory

Feladatunk egy olyan alkalmazás megtervezése, mely szervezetek osztályainak hierarchiáját képes egy diagramon megjeleníteni. Egy szervezeten belül lehetnek osztályok és személyek, az osztályokon belül további osztályok és személyek, tetszőleges mélységben. Mely tervezési mintát a legcélszerűbb választani a probléma modellezésére?

Típus: egy. Válasz: 8. Pontozás: -.

  1. Prototype
  2. Memento
  3. Observer
  4. Strategy
  5. Singleton
  6. Proxy
  7. Factory method
  8. Composite
  9. Abstract factory

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!

Típus: több. Válasz: 2. Pontozás: -.

  1. A C# kódot a JIT compiler fordítja gépi (IL) kódra.
  2. A dinamikusan lefoglalt memória felszabadítása nem a fejlesztő feladata.
  3. Az elterjedtebb processzorok képesek a köztes (IL) kódot közvetlenül futtatni.
  4. A C# kódot a JIT compiler fordítja köztes (IL) kódra.

Ön egy alkalmazást fejleszt .NET platformra. Az alkalmazást a felhasználók a saját gépeiken több példányban is mepróbálhatják elindítani (akár teljesen egyidőben). Az ön feladata annak megoldása, hogy az alkalmazás csak egy példányban fusson: vagyis, ha az alkalmazásból úgy indít új példányt a felhasználó, hogy már fut, akkor az újabb példány ezt detektálja, és azonnal lépjen ki (fejezze be a futását). Mit használna az alábbiak közül ennek megvalósításához?

Típus: egy. Válasz: 5. Pontozás: -.

  1. lock
  2. synchronized
  3. StartCoordinator
  4. AutoResetEvent
  5. Mutex
  6. Singleton
  7. ThreadPool

Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, hogy mely állítások igazak.

Típus: egy. Válasz: 4. Pontozás: -.

  1. 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.
  2. C# eventre feliratkozni az "=" operátorral lehet.
  3. C# event tagváltozóra helyes példa a következő: event int CompareDelegate(object a, object b);
  4. C# event tag értéke null abban az esetben, ha nincs az eseményre feliratkozó.

Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, hogy mely állítások igazak.

Típus: több. Válasz: 2,5. Pontozás: -.

  1. A C# attribútumok definiálásakor egy get és egy set blokkot adunk meg, melyek az attribútum lekérdezésekor, illetve beállításakor hívódnak meg (nem kötelező mindkettőt megadni).
  2. C# delegate objektumot át lehet adni függvényparaméterként is.
  3. C# delegate típus definícióra szintaktikailag helyes példa a következő: event int CompareDelegate(object a, object b);
  4. C# event események vonatkozásában a -= operátor valamennyi előfizetőt leiratkoztat.
  5. Egy delegate objektum/változó több metódusra is hivatkozhat.

Adottak az alábbi állítások a C# nyelvi eszközökről (property, delegate, event és attribute). Jelölje meg, hogy mely állítások igazak.

Típus: több. Válasz: 1,2,3,5. Pontozás: -.

  1. A C# attribútumok 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.
  2. C# eventre feliratkozni a "+=" operátorral lehet.
  3. C# delegate típus definícióra szintaktikailag helyes példa a következő: delegate int CompareDelegate(object a, object b);
  4. C# események elsütésekor a beregisztrált eseménykezelő függvények a hatékonyság érdekében külön szálakon hívódnak meg.
  5. Egy osztály több eseményt is publikálhat.

Jelöje meg, hogy a .NET Framework esetében mely állítások igazak!

Típus: több. Válasz: 2,4,5. Pontozás: -.

  1. 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).
  2. A .NET IL kód processzor-és architektúrafüggetlen.
  3. A .NET IL kód nagyon hatékony, mert a processzorok közvetlenül tudják futtatni.
  4. Az azonosított (erős névvel aláírt) szerelvények lehetővé teszik, hogy a több kiadó/fejlesztőcég azonos fájlnévvel és azonos verzióval telepítsen .NET szerelvényeket.
  5. A privát szerelvényeket egyszerűbb telepíteni, mint az azonosított szerelvényeket.

Az alábbiak közül melyik definiálja a legjobban a klasszikus DLL hell problémát?

Típus: több. Válasz: 3. Pontozás: -.

  1. 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).
  2. Egy alkalmazás telepítésekor felteszi a célkörnyezetbe az általa használt DLL-eket egy közös mappába. Ezeket a DLL-eket további alkalmazások is használják, melyek közül az egyik eltávolításakor (uninstall) a DLL-ek egy része eltávolításra kerül, így az alkalmazásunk működésképtelenné válik.
  3. Egy alkalmazás telepítésekor felteszi a célkörnyezetbe az általa használt DLL-eket egy közös mappába. Később, egy másik alkalmazás a telepítésekor felülírja a korábban telepített alkalmazás egyik DLL-jét egy másik verzióval. A korábban telepített alkalmazás ezzel az újonnan telepített DLL-lel nem működik megfelelően.
  4. Egy alkalmazás telepítésekor felülírja az operációs rendszer bizonyos DLL-jeit, mely következtében az operációs rendszer instabillá válik.

Jelölje meg, mely állítások igazak a szálkezelésre .NET környezetben!

Típus: több. Válasz: 2,3,5,6. Pontozás: -.

  1. 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ítunk meg a segítségével.
  2. A ManualResetEvent osztályt jellemzően arra használjuk, hogy hatékonyan tudjunk várakozni más szál jelzésére.
  3. A Mutex előnye a lock utasítással szemben, hogy különböző folyamatok szálai között is használható.
  4. Az x++ művelet .NET környezetben atomi (és így szálbiztos), ha az x típusa int (32 bites).
  5. A ReaderWriterLock használata akkor célszerű használni kölcsönös kizárásra, ha a védett erőforrást gyakran olvassuk és ritkán írjuk.
  6. Az x=10 művelet .NET környezetben atomi (és így szálbiztos), ha az x típusa int (32 bites).

== Adott az alábbi Pipes and filters (csővezeték) architektúra filter megvalósítás pszeudokód:
void Write(Data data)
{
Data processedData = ProcessData(data);
nextFilter.Write(processedData);
}
==

Típus: egy. Válasz: 1. Pontozás: -.

  1. Adatforrás által vezérelt.
  2. Adatnyelő által vezérelt.
  3. Csővezeték által vezérelt.
  4. Aktív szűrő által vezérelt.
  5. Passzív szűrő által vezérelt.

== Adott az alábbi Pipes and filters (csővezeték) architektúra filter megvalósítás pszeudokód:
Data Read()
{
Data data = prevFilter.Read();
Data processedData = ProcessedData(data); return processedData;
}
==

Típus: egy. Válasz: 2. Pontozás: -.

  1. Adatforrás által vezérelt.
  2. Adatnyelő által vezérelt.
  3. Csővezeték által vezérelt.
  4. Aktív szűrő által vezérelt.
  5. 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!

Típus: több. Válasz: 2,3,4. Pontozás: -.

  1. A kétrétegű architektúrát ma már soha nem használjuk a háromrétegű architektúra előnyei miatt.
  2. A kétrétegű architektúra lehetővé teszi, hogy adott üzleti logikához egyszerűen készítsünk különböző frontend alkalmazásokat, úgy mint desktop, web, mobil.
  3. 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, úgy mint desktop, web, mobil.
  4. 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!

Típus: több. Válasz: 2,3,6. Pontozás: -.

  1. Globális változó
  2. Statikus tagváltozó
  3. Statikus metódus vagy statikus property
  4. Virtuális metódus
  5. Absztrakt metódus
  6. Védett konstruktor
  7. Védett destruktor
  8. 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?

Típus: egy. Válasz: 4. Pontozás: -.

  1. Factory method
  2. Abstract method
  3. Composite
  4. Proxy
  5. Observer
  6. Adapter
  7. Singleton
  8. Strategy

Egy kilens objektum egy nagy erőforrásigényű objektumot használ (pl. egy szövegszerkesztő nagyméretű képeket), a nagy erőforrásigényű objektumra, azonban nincs mindig szükség, igény esetén tölthető be. A betöltés előtt is szükség van azonban a nagy erőforrásigényű objektum bizonyos paramétereire. Mely tervezési mintát használná a probléma megoldására?

Típus: egy. Válasz: 4. Pontozás: -.

  1. Factory method
  2. Abstract method
  3. Composite
  4. Proxy
  5. Observer
  6. Adapter
  7. Singleton
  8. Strategy


A feladatunk egy keretrendszer megtervezése. A keretrendszerben létre kell hozni egy adott típusú objektumot, de annak típusát nem ismerjük, mert az csak a keretrendszerre épülő alkalmazás esetén dől el. Mely tervezési mintát használná a probléma megoldására?

Típus: egy. Válasz: 1. Pontozás: -.

  1. Factory method
  2. Abstract method
  3. Composite
  4. Proxy
  5. Observer
  6. Adapter
  7. Singleton
  8. Strategy

Adottak az alábbi állítások a Memento tervezési mintával kapcsolatban. Jelölje meg a helyes válaszokat!

Típus: több. Válasz: 2,3,6,7. Pontozás: -.

  1. 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.
  2. 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.
  3. 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.
  4. A mintában a CareTaker Originator objektumokat tárol.
  5. A mintában az Originator osztályt becsomagoljuk egy Memento objektummal, a Memento tárolja az Originator állapotát.
  6. 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.)
  7. A mintát használhatjuk az Undo funkció megvalósítására.

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!

Típus: egy. Válasz: 1. Pontozás: -.

  1. A Composite osztálynak van egy Component gyűjteménye.
  2. A Component osztálynak van egy gyűjteménye Composite, valamint egy másik gyűjteménye Leaf objektumokból.
  3. A Component osztálynak van egy közös gyűjteménye (heterogén kollekció) Composite és Leaf objektumokból.
  4. A Composite osztálynak van egy gyűjteménye Component, valamint egy másik gyűjteménye Leaf objektumokból.
  5. A Client osztálynak van egy gyűjteménye Composite, valamint egy másik gyűjteménye Leaf objektumokból.

== 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).
class DataProcessor
{
List<int> items = new List<int>();
static object syncObject = new object();
public int GetItem(int index) {
lock (syncObject) { return items[index]; }
}
public void AddItem(int n) {
lock (syncObject) { items.Add(n); }
}
}
==

Típus: egy. Válasz: 3. Pontozás: -.

  1. A megoldás jelen formájában nem szálbiztos (thread safe), de azzá tehető, ha a syncObject tagváltozó elől a static kulcsszót eltávolítjuk.
  2. A megoldás szálbiztos (thread safe) és nem tehető triviális módon hatékonyabbá.
  3. A megoldás szálbiztos (thread safe), de a syncObject tagváltozó előtti a static kulcsszó eltávolításával hatékonyabbá tehető.
  4. A megoldás szálbiztos (thread safe), de a lock utasítások eltávolításával hatékonyabbá tehető.

== Adott az alábbi C# nyelvű .NET alkalmazás kódrészlet, mely egymásba ágyazott zárakat tartalmaz.
class Program
{
static object syncObject = new object();
static void Main(string[] args)
{
lock (syncObject) {
f();
}
}
static void f()
{
lock (syncObject) {
Console.WriteLine("Hello!");
}
}
}
==

Típus: egy. Válasz: 1. Pontozás: -.

  1. Az alkalmazás kiírja a "Hello!" szöveget a konzolra.
  2. Az alkalmazás soha nem fejezi be a futását, mert az f() függvényben a lock utasításnál már egy a Main függvényben zárolt objektumra próbál zárolni (holtpont alakul ki).
  3. Az f() függvényben a lock utasítás kivételt dob annak érdekében, hogy ne alakuljon ki holtpont.

Az alábbiak közül mely adatok teszik egyedivé az erős névvel ellátott (azonosított) .NET szerelvényeket? Jelölje meg a helyes választ!

Típus: egy. Válasz: 2. Pontozás: -.

  1. Név, fejlesztő cég privát kulcsa, verzió, opcionális kultúra információ
  2. Név, fejlesztő cég nyilvános kulcsa, verzió, opcionális kultúra információ
  3. Név, verzió, pcionális kultúra információ
  4. Név, fejlesztő cég nyilvános kulcsa, verzió, digitális aláírás, opcionális kultúra információ

Adottak az alábbi állítások különböző tervezési mintákkal kapcsolatban! Jelölje meg a helyes állításokat!

Típus: több. Válasz: 1,2. Pontozás: -.

  1. A Proxy tervezési mintában a Proxy objektum egy transzparens csomagoló az eredeti objektum körül, mely szabályozhatja az eredeti objektumhoz való hozzáférést.
  2. Az Adapter minta - pontosabban annak Object Adapter változata - az objektum becsomagolásával teszi lehetővé, hogy az objektum interfésze kompatibilis legyen azzal, amit a kliens/környezete elvár.
  3. A Singleton minta globális hozzáférést biztosít egy osztály egyetlen objektumához, és ezt az objektumot egy globális változóban tárolja.

.NET környezetben egy szálban hatékonyan kell várakozni arra, hogy egy másik szál valamilyen adatot előkészítse a számára. Milyen szinkronizációs konstrukciót a legcélszerűbb erre használni?

Típus: egy. Válasz: 4. Pontozás: -.

  1. lock
  2. synchronized
  3. Mutex
  4. ManualResetEvet
  5. ReaderWriterLock
  6. Semaphore

Adottak az alábbi állítások a Strategy tervezési mintával kapcsolatban. Jelölje meg, mely állítások igazak!

Típus: több. Válasz: 3,5. Pontozás: -.

  1. A minta globális függvénypointereket vezet be annak érdekében, hogy a kliens szemszögéből az általa használt algoritmusok szabadon kicserélhetőek legyenek.
  2. A minta lehetővé teszi, hogy egy adott osztály viselkedésének különböző aspektusai paraméterezhetőek legyenek. Mindezt elsődlegesen úgy éri el, hogy magából az osztályból számos leszármazottat vezet be (minden viselkedés kombinációhoz egyet).
  3. A minta lehetővé teszi, hogy egy adott osztály viselkedésének különböző aspektusai paraméterezhetőek legyenek. Mindezt úgy, hogy minden aspektushoz egy osztályhierarchiát vezet be.
  4. A mintában a Context (vagy Client) osztályban van egy vagy több mutató/referencia, mely típusa egy vagy több konkrét algoritmus implementáció.
  5. 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% Jelölje meg, mely állítások igazak.

Típus: több. Válasz: 1,3,4. Pontozás: -.

  1. A Document-View architektúra az Observer tervezési minta egy speciális alkalmazása.
  2. A Document-View architektúra a Composite tervezési minta egy speciális alkalmazása.
  3. 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.
  4. 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.

Típus: egy több. Válasz: . Pontozás: -.

Típus: egy több. Válasz: . Pontozás: -.

Típus: egy több. Válasz: . Pontozás: -.

Típus: egy több. Válasz: . Pontozás: -.

Típus: egy több. Válasz: . Pontozás: -.

Típus: egy több. Válasz: . Pontozás: -.