Examenvoorbeeld Flashcards

1
Q

Welk pattern: je moet een boomstructuur geven aan data?

A

Composite Pattern

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

Welk pattern: je moet alle elementen van een collectie overlopen?

A

Iterator Pattern

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

Welk pattern: een algoritme moet uitgevoerd worden. Het algorithm heeft een hook (een plaats waar een ander object kan inhaken om het standaardverloop aan te vullen)?

A

Template Method Pattern

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

Wat doet het ‘Facade Pattern’?

A

Het ‘Facade Pattern’ zorgt voor een vereenvoudigde interface naar een verzameling interfaces in een subsysteem.
De facade definieert een interface op een hoger niveau zodat het gebruik van het subsysteem vereenvoudigt.

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

Wat doet het ‘Builder Pattern’?

A

Het ‘Builder Pattern’ schermt de constructie van een complex object af. Daardoor kun je met hetzelfde proces verschillende varianten van het complexe object construeren.

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

Wat doet het ‘Singleton Pattern’?

A

Het ‘Singleton Pattern’ garandeert dat een klasse slechts 1 instantie heeft, en biedt een globaal toegangspunt ernaartoe.

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

Ontwerpprincipes: wees open voor uitbreiding, maar gesloten voor verandering?

A

Klassen moeten open zijn voor uitbreiding, maar gesloten voor verandering.
Het moet dus mogelijk zijn om het gedrag van klassen uit te breiden zonder dat dat invloed heeft op het bestaande gedrag. Met andere woorden: na de uitbreiding moet alle bestaande code die de klasse al gebruikte nog steeds correct werken, zonder dat die bestaande code aangepast moet worden.
Dit maakt code onderhoudsvriendelijker. Omdat het bestaande gedrag niet verandert, kun je er op rekenen dat het blijft werken. Je moet het dus niet noodzakelijk hertesten.

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

Ontwerpprincipes: ‘dependency inversion’?

A

High-level componenten mogen niet afhankelijk zijn van low-level componenten, maar moeten afhankelijk zijn van abstracties.
Abstracties mogen niet afhankelijk zijn van details, maar details moeten afhankelijk zijn van abstracties.

In een softwaresysteem is er een soort hiërarchie van componenten. High-level componenten zijn de belangrijke componenten die de werking bepalen. Low-level componenten zijn hulpcomponenten die bijdragen aan de werking. Het principe zegt dat de high-level componenten moeten kunnen werken zonder dat ze afhangen van concrete low-levelcomponenten. M.a.w.: als een low-levelcomponent vervangen wordt door een andere met een gelijkaardige werking, dan moet de impact van die verandering op de high-level componenten minimaal zijn. Daardoor wordt het systeem onderhoudsvriendelijker: onderhoudshandelingen op low-levelcomponenten hebben weinig of geen impact op de rest van het systeem.

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

Wat is het doel van het ‘decorator pattern’?

A

Het ‘Decorator Pattern’ kent dynamisch bijkomende verantwoordelijkheden toe aan een object.
Decorators bieden een flexibel alternatief voor het gebruik van subklassen om functionaliteit uit te breiden.

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