Patterns.dev Flashcards

1
Q

Vad är poängen med mediator/middleware pattern?

A

Förenkla many-to-many kommunikation genom att låta all kommunikation gå genom en central punkt.

Som ett kontrolltorn på en flygplats som sköter kommunikationen mellan alla flygplan.

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

3 fördelar med command pattern?

A

Koppla loss metoder från objekt, separera ansvar.

Genom att spara kommandohistorik kan man enkelt implementera undo/redo funktionalitet.

Blir mer modulärt dvs lätt att testa, felsöka, återanvända

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

Nackdelar med command pattern?

A

Få use cases. Skapar onödig boilerplatekod.

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

Vad är en factory funktion?

A

En funktion som returnerar ett nytt objekt utan att använda nyckelordet new

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

När är factory pattern användbart?

A

När man skapar relativt komplexa och konfigurerbara objekt.

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

Fördelar med factory pattern?

A

Användbart för att skapa många mindre objekt som delar egenskaper.

Kan enkelt returnera objekt beroende på specifik kontext eller användarkonfiguration.

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

Nackdelar med factory pattern?

A

I många fall är det mer minneseffektivt att skapa instanser av en klass istället för nya objekt.

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

Vad är flyweight pattern?

A

Ett sätt att se till att det inte skapas onödiga duplicerade objekt. Genom något unikt ID kollar man om objektet redan finns och hanterar det på lämpligt sätt.

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

Vad är mixin pattern?

A

Att lägga till funktionalitet i ett objekt utan att använda inheritance.

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

Hur använder man mixin pattern i JS?

A

Genom att skapa ett separat objekt med önskad funktionalitet som sedan injiceras i målobjektets prototyp genom:

Object.assign(
    TargetObject.prototype, 
    MixinObject 
);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Är det en bra idé generellt att använda mixin?

A

Nej.

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

Vad är module pattern?

A

Att bryta upp kodbasen i fristående moduler som kan importeras och användas på flera ställen.

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

2 Fördelar med module pattern?

A
  1. Minskar risk för namnkollisioner.
    ( Kan ytterligare undvikas med as)
    Variabler, funktioner och värden kan hållas privata inom modulen.
  2. Kan också användas dynamiskt, enbart importera de moduler som behövs för tillfället
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vad är observer pattern?

A

Objekt (observers) kan ’prenumerera’ på ett annat objekt (observable). När en händelse inträffar meddelar observable alla observers.

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

Vilka fyra delar brukar ett observable objekt innehålla?

A
  1. Lista med observers att meddela om eventet
  2. Metod för att lägga till observers
  3. Metod för att ta bort observers
  4. Metod för att meddela observers när eventet inträffar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Use case för observer pattern?

A

Streams
eventbaserad asynkron data

17
Q

Fördelar med observer pattern?

A

Separation of concerns.
Single responsibility.

18
Q

Nackdelar med observer pattern?

A

Om en observable blir för komplex kan det skapa performance problem när alla observers ska meddelas.

19
Q

What is the “provider” in provider pattern?

A

A wrapper component that provides context to all its child components

20
Q

What problem does the provider pattern solve?

A

Prop drilling

21
Q

What react hooks are associated with provider pattern?

A

createContext
useContext

22
Q

Use case for provider pattern?

A

Sharing global data. Like a theme UI state.

23
Q

Cons of provider pattern?

A

Overuse can result in performance issues. All components that consume the context re-render on each state change.