8.dia Minták a szoftverfejlesztésben Flashcards

(11 cards)

1
Q

Mi a minta?

A

Újra és újra felbukkanó probléma és a hozzátartozó megoldás magja.
3 része:
környezet : Milyen helzetben fordul elő?
probléma : Az adott környezetben a negatív helyzet ami sokszor fennáll. -> Erő megoldáshoz vezető út követelményei, megszorításai.
megoldás : Erő egyensúlyozásával megoldjuk a problémát. Csak egy séma, és nem pontos terv.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Architekturális minták

A

Szoftverrendszerek alapvető szerkezeti felépítésre adnak mintát.
Előre definiált alrendszerek és a hozzájuk tartozó szabályok, irányelvek és köztük lévő kapcsolat segíti a felépítést.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

A modell-nézet vezérlő (MVC) architekturális minta

A

Környezet: Rugalmas ember-gép felülettel rendelkező interaktív alkalmazások esetén.
Probléma: Felhasználói felületet gyakran kell változtatni.
-Erő:
- Ugyan olyan infókat máshogy megjeleníteni.
- UI-nak azonnal kell tükröznie hogy az adatokkal milyen művelet hajtódik végre.
- UI könnyen változtatható legyen akár futás közben is.
- Szabvány a “look and feel”-re
Megoldás: Három részre osztani az alkalmazást.
- Modell komponens : funkcionalitás és adatok
- Nézet komponens : megjelenítés
- Vezérlő komponens : Bemenet és ezt kérésként továbbítja a modellnek.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

MVC lefőbb célok bővebben

A

Modell és nézet elválasztása:
- Ugyan azon adatok máshogyan megjeleníthetőek.
Viszont nem olyan fontos a vezérlő és a nézet elválasztása:
- Több vezérlő is lehet egy nézethez (szerkeszthető és nem szerkeszthető nézet)
- Gyakorlatban általában 1-1
Karakter rendszer példák:
- Java : Spring Framework, (JavaFX, egyébként nem az, de meg lehet vele valósítani.)
- Python : Django

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Tervezési minták

A

Középszintűek, kisebb léptűek mint az architekturális minták.
Szoftverrendszerekre alapvetően nincs kihatással, viszont alrendszerek felépítésére igen.
Föggetlen nyelvtől és paradigmától.
Kapcsolódik a GoF-hez.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Tervezési minták osztályozása

A

Létrehozási minták : Objektumok létrehozása.
Szerkeztési minták : Hogyan alkotnak objektumok és osztályok nagyobb szerkezeteket.
Viselkedési minták : Felelősség elosztás és az objektumok és osztályok hatása egymásra.
Új kategória Konkurencia minták

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tervezési minták osztályozására példák

A

Létrehozási minták: elvont gyár, gyártó metódus, építő, egyke, objektumkészlet
Szerkeztési minták: díszítő, illesztő
Viselkedési minták: bejáró, megfigyelő, sablonfüggvény

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Egyke (Létrehozási minták)

A

Cél: Egy osztályt csak egyszer lehessen példányosítani és ehez globális hozzáférést adni.
Indíték: Néha fontos, hogy csak egy példány legyen. Lehet túl nagy erőforrás igényű.
Alkalmazhatóság: Ügyfelek számára jól ismert elérési pontból elérhető pontosan egy példányra van szükség.
Javában megoldás:
-Privát konstruktor, publicus get metódus.
- Mohó inicializálás, szálbiztos (Deklaráció = inicializálás)
- Lusta inicializálás, szálbiztos (get meghívása -> inicializálás) (synchronized)
- Lusta inicializálás, szálbiztos, (nincs synchronized) (Becsomagoló osztály)
- Enum

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Programozási idiómák / implementációs minták

A

Legalacsonyabb szintű minták, egy programozási nyelvre jellemző minta.
Egy adott nyelv eszközeivel hogyan valósítunk meg komponensek és kapcsolataik bizonyos vonakoztatásait.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Az equals(), hashCode() és clone() metódus felülírása Java-ban

A

Példák a diában…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Antiminták, a massza és spagetti kód antiminta

A

Problémára adott általános megoldás ami kifejezetten negatív hatású.
A massza : Egyetlen nagy osztály van a funkcionalitásért, a többi csak adatokat tárol.
Spagetti kód: Struktúrálatlan, OOP elveket nem betartó kód.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly