Minták a szoftverfejlesztésben Flashcards
Mi a minta?
„A minta egy olyan ötlet, mely egy gyakorlati környezetben már hasznosnak bizonyult, és várhatóan más környezetekben is hasznos lesz.”
Sorold fel a minta részeit!
Környezet - mely helyzetekben fordul elő a probléma
Probléma - adott környezetben ismétlődően felmerülő probléma
Erő - olyan szempont amit a megoldás során figyelembe kell venni
Megoldás - megoldási sémát ad, nem egy részletes tervet
Jellemezd a mintakatalógusokat és mintanyelveket!
Mintakatalógus - minták egy tetszőleges csoportja, lehet heterogén vagy fókuszálhat egy adott területre, lehet strukturált vagy strukturálatlan
Mintanyelv - egymással összefüggő minták egy gyűjteménye, melyek együtt meghatároznak egy szisztematikus folyamatot szoftverfejlesztési problémák megoldására
Jellemezd az architekturális mintákat!
Szoftverrendszerek alapvető szerkezeti felépítésére adnak sémákat. Előre definiált alrendszereket biztosítanak, meghatározzák ezek felelősségi köreit, valamint szabályokat és irányelveket.
Jellemezd a Modell View Controllert (MVC)!
Név: Modell-nézet verzérlő.
Környezet: rugalmas ember-gép felülettel rendelkező interaktív alkalmazások
Probléma: különösen gyakori az igény a felhasználói felületek változtatására
Erők: - Ugyanazon információk különböző módon jelennek meg
- alkalmazás megjelenítésének azonnal tükröznie kell az adatokon végzett műveleteket
Megoldás: interaktív alkalmazás három részre való osztása:
- modell komponens az adatokat és funkcionalitást csomagolja be
- nézet komponens jeleníti meg az információkat a felhasználónak
- a vezérlő fogadja a bemenetet, melyet szolgáltatáskérésekké alakít a modell vagy nézet felé
Jellemezd a tervezési mintákat!
Középszintű minták, kisebb léptékűek mint az architektúrálisak.
Alkalmazásuknak nincs hatása egy szoftverrendszer alapvető felépítésére, de meghatározzák az alrendszer felépítését. Függetlenek egy programozási nyelvtől vagy paradigmától.
Osztályozd a tervezési mintákat!
Céljuk szerint lehetnek:
- létrehozási minták - objektumok létrehozásával foglalkoznak
- szerkezeti minták - azzal foglalkoznak, hogy az osztályok és objektumok, hogyan alkotnak nagyobb szerkezeteket
viselkedési minták - osztályok vagy objektumok egymásra hatását valamint felelősségek eloszlását írják le
Jellemezd az egyke és építő tervezési-létrehozási mintákat!
Egyke:
Célja, hogy egy osztályból csak egy példányt engedélyezzen, ehhez pedig globális hozzáférési pontot megadni.
Indíték: egyes osztályok esetében fontos. hogy egy példány legyen belőlük
Építő:
Célja, hogy az összetett objektumok felépítését függetleníti az ábrázolásuktól, így ugyanazzal az építési folyamattal több ábrázolás is létrehozgató.
Jellemezd a díszítő és illesztő tervezési-szerkezeti mintákat!
Illesztő:
Célja, hogy az adott osztály interfészét az ügyfelek által igényelt interfésszé alakítja.
Díszítő:
Célja, hogy az objektumokhoz dinamikusan további felelősségi köröket rendelhessünk.
Jellemezd a bejáró és felelősséglánc tervezési-viselkedési mintákat!
Felelősséglánc:
Célja, hogy elkerüljük a kérelem küldőjének a fogadóhoz való kötését. Más objektum is kap jogot kérelem kezelésére. A fogadó objektumokat láncba állítjuk és a kérelem addig halad míg el nem ér egy objektumhoz ami képes a kezelésre.
Bejáró:
Célja, hogy az összetett objektumok elemeinek soros elérését a háttérben lévő ábrázolás felfedése nélkül biztosítsuk.
Jellemezd a látogató és sablonfüggvény tervezési-viselkedési mintákat!
Sablonfüggvény:
Célja, hogy egy adott művelet algoritmusának vázát elkészíteni, melynek lépéseit alosztályokra hárítunk.
Látogató:
Célja, hogy egy objektumszerkezet elemein végrehajtandó műveletet ábrázoljon, anélkül lehet új műveletet meghatározni, hogy az elemek osztályát megváltoztassuk
Jellemezd a programozási idiómákat - implementációs mintákat!
Egy idióma egy programozási nyelvre jellemző alacsony szintű minta. Ezek a legalacsonyabb szintű minták. Leírja, hogy hogyan valósul meg a komponensek és kapcsolataik bizonyos vonatkozásai az adott nyelv eszkzörendszerével.
Jellemezd az antimintákat!
Olyan mint egy minta, de megoldás helyett olyat ad ami hasonlít egy megoldásra, de nem az. Negatív következményekkel járnak.
Három kategóriába lehet sorolni:
- szoftverfejlesztési antiminták
- szoftver architekturális antiminták
- szoftverprojekt vezetési antiminták
Jellemezd a massza antimintát!
Alkalmazási szinten fordul elő, lustaság és sietség váltja ki.
A feldolgozást egyetlen osztály sajátítja ki, többi pedig adatokat zár egységbe.