Design Patterns Flashcards

1
Q

Template Pattern

A

Typ:
Behavioral

Ett behavioral pattern som skapar strukturen för ett program i en superklass och låter dess subklasser overridea steg i strukturen utan att ändra den.

Exempel:
Superklassen “House” har subklasserna “Villa” samt “WoodHouse”. Därmed skapas ett interface strukturen “foundation”, “walls” och “windows” då ett hus byggs i denna ordning. Därefter kan subklasserna @Overridea dessa metoder om dem ska byggas på samma sätt.

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

Strategy Pattern

A

Typ:
Behavioral

Genom ett interface och polymorfism tillåter den subklasser att anta ett specifik beetende efter behov.

Exempel:
Superklassen “Animal” har subklasserna “dog” och “bird”. classerna “Fly” och “cantfly” implementerar interfacet move vilket, genom polymorfism, tillåter dog och bird att ärva dessa attribut.

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

Bridge Pattern

A

Typ:
Structural

Tillåter dig att dela upp större klasser eller flera nära relaterade till två separata hierarkier, abstraktion och implementation.

En bil har en motor och en färg. Olika bilar (av samma typ) kan ha olika motorer och olika färger. Skapa ett separat gränssnitt för motorer, och använd konkreta objekt för motorer som implementerar detta gränssnitt. Skapa ett separat gränssnitt för färger, och använd konkreta färgobjekt som implementerar detta gränssnitt.

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

Factory Pattern

A

Typ:
Creational

Ett pattern, som genom ett interface, tillåter instansiering av en superklass.

Tänk ett logistikföretag som arbetar med lastbilar och båtar. Detta logistikföretag blir väldigt populärt och har stor förfrågan på sina fordon. I kod kan man då implementera ett factory pattern för att “skapa” objekt av exempelvis lastbilar eller båtar.

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

Adapter Pattern

A

Typ:
Structural

Adapterpatternet används när två klasser har inkompatibla gränssnitt genom att skapa en adapter som möjliggör samarbete mellan dem.

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

Module Pattern

A

Module Pattern är ett pattern som skapar en sammanhängande enhet för hignivåmoduler.

Exempelvis carApp i labbpassen.

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

Facade Pattern

A

Typ:
Structural

Skapar ett simplare interface för ett större komplext set att exempelvis klasser.

Exempelvis carModel i labpassen.

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

Iterator Pattern

A

Typ:
Behavioral

Tillåter programmet att iterera över en samling objekt. Exempelvis en lista, ett träd eller en stack, utan att exponera dess underliggande kod för användaren.

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

Composite Pattern

A

Typ:
Structural

Gör det möjligt att använda grupper av objekt (av någon typ) på samma sätt som ett enskilt objekt (av den typen).

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

State Pattern

A

Typ:
Behavioral

Tillåter objekt att ändra sitt beteende under intern förändring.

En amfibiebil kan växla mellan att köra på land eller köra på vatten. Den har samma uppsättning beteenden (e.g. köra, svänga, backa), men dessa implementeras olika för olika tillstånd (land/vatten). En klient kan inte hitta på ett eget tillstånd (e.g. flygande).

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

Decorative Pattern

A

Genom att dela upp ett komplext objekt i flera oberoende aspekter, som kan sättas ihop ”lager på lager” med samma gränssnitt, kan vi hantera delar av en entitets tillstånd, ansvar och beteende separerat. (SOC)

Med Decorator Pattern representeras en entitet (dvs en sak/”ett objekt” ur domänen vi modellerar) dynamiskt genom en stapel (stack) av objekt, där grundobjektet ligger i botten.

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