Design Patterns Flashcards

1
Q

Mi a Module Pattern célja és mit csinálunk vele?

A

A Module Pattern célja az enkapszuláció biztosítása. Elrejtjük vele a privát kódunkat a globális névtér elől, és biztosítunk egy interfészt, amin keresztül a publikus metódusok elérhetőek.

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

Milyen tervezési minták közé tartozik a Module Pattern?

A

A Module Pattern a kódunk struktúrájáról szól, ezért a strukturális tervezési minták (structural design patterns) közé tartozik.

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

Milyen eszközöket javasol a Module Pattern?

A

A Module Pattern által javasolt eszközök az azonnal meghívott függvénykifejezés (IIFE) a privát kód becsomagolására és a visszaadott object literal, amely a nyilvános interfészt biztosítja.

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

Mi a Module Pattern hátránya?

A

A Module Pattern hátránya, hogy nehéz megváltoztatni a kódunk láthatóságát.

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

Mi a Constructor Pattern célja?

A

A Constructor Pattern célja, hogy megkönnyítse az objektumok létrehozását.

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

Milyen tervezési minták közé tartozik a Constructor Pattern?

A

A Constructor Pattern a létrehozó tervezési minták (creational design pattern) közé tartozik.

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

Milyen eszközt javasol a Constructor Pattern?

A

Az eszköz, amelyet a Constructor Pattern javasol az objektumkészítéshez, a konstruktor függvény.

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

Mi a Constructor Pattern hátránya?

A

A Constructor Pattern hátulütője az, hogy az öröklődést nehézzé teszi.

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

Mi a Class Pattern célja?

A

A Class Pattern célja az objektumkészítés megkönnyítése.

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

Milyen tervezési minták közé tartozik a Class Pattern?

A

A Class Pattern a létrehozó tervezési minták közé tartozik (creational design pattern).

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

Mi a Class Pattern előnye?

A

A classok könnyebbé teszik az öröklődést, és bevezetnek pár egyéb szintaxisbeli apróságot is, amelyek megkönnyítik az életünket. (ES6 class szintaxis)

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

Milyen eszközt javasol a Class Pattern?

A

Az eszköz, amit a Class Pattern javasol az objektumkészítéshez, az ES6 class szintaxis.

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

Mi a Class Pattern hátránya?

A

A Class Pattern hátulütője az, hogy még nincs mindenhol támogatva.

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

Hogyan lehet egy Class-t definiálni?

A

Ahogy a függvényeknek, a classoknak is van egy class deklaráció (class declaration) és egy class kifejezés (class expression) verziójuk. Mindkettő a class kulcsszóval kezdődik, amit a class törzse (class body) követ kapcsos zárójelekkel körbevéve. A class deklaráció egy önmagában álló kódblokk, a class kifejezést pedig használhatjuk egy változó értékeként.

A class deklarációk nem hoistolódnak.

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

Milyen fontosabb részekből épül fel a Class törzse? (Class Body) /3pont

A

1, A konstruktor (constructor) – egy speciális metódus, amely inicializálja a létrehozott objektumainkat.
2, A példánytulajdonságok (instance properties) – a tulajdonságok, amelyeket a konstruktorban függesztünk a this-re, és ezen keresztül a létrehozandó objektumpéldányra.
3, A prototípus-metódusok – a függvények, amelyeken minden objektumpéldány osztozik majd, és amelyekkel manipulálhatják a saját tulajdonságaikat.

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

Hogyan tudunk örökölni Class-szel?

A
Két lépésre van szükségünk, hogy az öröklődés működjön:
1,Használjuk az extends kulcsszót a deklarációban, és mutassunk a szülő classra: class Dog extends Animal`.
2,Hívjuk meg a super() metódust – a szülő class konstruktorát – a gyermek classban minden olyan paraméterrel, amit szeretnénk átadni. Például, super(name).
17
Q

Milyen tervezési minták közé tartozik a Publish/Subscribe Pattern?

A

A Publish/Subscribe (Kiadó/Feliratkozó), vagy röviden csak Pub/Sub a viselkedési minták közé tartozik (behavioral pattern).

18
Q

Mire koncentrálnak a viselkedési minták?

A

A viselkedési minták arra koncentrálnak, hogyan viselkednek az objektumok, hogyan kommunikálnak egymással. A weben, JavaScripttel és DOM-mal dolgozva a Pub/Sub a leggyakoribb viselkedési tervezési minta.

19
Q

Mi a Pub/Sub célja?

A

A Publish/Subscribe Pattern célja, hogy megkönnyítse az objektumok közötti kommunikációt.

20
Q

Milyen eszközt ajánl a Pub/Sub?

A

Az eszköz, amit a Publish/Subscribe ajánl az objektumkommunikációra egy eseménycsatorna (event channel), ami eseményeket kap eseménykiadóktól (event publishers), és értesíti az eseményfeliratkozókat (event subscriber), amikor az esemény, amelyre feliratkoztak, tüzelt.

21
Q

Mi a Pub/Sub hátránya?

A

A Publish/Subscribe Pattern hátulütője, hogy nehéz elkapni bugokat, amikor a publikált esemény nem egyezik azzal, amire feliratkoztunk.

22
Q

Milyen tervezési minták közé tartozik az MVC Pattern?

A

Az MVC Pattern az architekturális minták közé tartozik (architectural pattern).

23
Q

Mivel foglalkozik az Architekturális minta?

A

Az architekturális minta azzal foglalkozik, hogy az egységeink, objektumaink hogyan kapcsolódnak egymáshoz. A struktúráról szól, de nem az egyes egységekéről, mint a Module Pattern, hanem arról a struktúráról, ahogy az egységeink összeállnak egy kész applikációvá.

24
Q

Mi az MVC Pattern célja?

A

Az MVC Pattern célja a szerepkörök szétválasztása a UI applikációkban. Arról szól, hogyan tudjuk a kódunk olyan komponensekbe szervezni, amelyeknek mind egyetlen, jól definiált célja van.

25
Q

Milyen eszközt javasol az MVC Pattern?

A

Az MVC Pattern eszközként azt javasolja, hogy törjük fel a kódunkat 3 részre: egy Modelre az adathoz, egy Viewra a UI-hoz, és egy Controllerre a kettő közötti kommunikáció menedzseléséhez.