1/24
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Voordelen Decorator
Dynamisch verantwoordelijkheden toevoegen aan objecten
Vermijden explosie aan klassen
Vergemakkelijkt onderhoud
Nadelen Decorator
Duur
Complexe code
Enkel op gebieden die meest kans hebben om te veranderen
Voordelen Bridge
Ontkoppelt implementatie van een bepaalde interface
Abstractie en implementatie onafhankelijk van elkaar uitbreiden
Veranderingen in de concrete klassen van de abstractiehiërarchie hebben geen invloed op de implementaties
Nadelen Bridge
Je moet veranderingen brengen aan zowel de interface als aan de implementaties
Verhoogt complexiteit
Voordelen Flyweight
Verminder aantal objecten at runtime, spaart geheugen
Concentreert de toestand van veel virtuele objecten op 1 plaats
Nadelen Flyweight
Losse instanties van de klasse zijn niet in staat zich onafhankelijk te gedragen van de andere instanties
Voordelen Facade
Minder afhankelijkheden
Beter softwareonderhoud
Nadelen Facade
Meer wrapperklassen
Complexer
Minder performant
Voordelen Prototype
Verbergt voor de client de ingewikkelde details van het maken van een nieuwe instantie
Geeft de client de mogelijkheid objecten te maken waarvan het type onbekend is
Soms is kopiëren efficiënter dan een nieuw object maken
Nadelen Prototype
Kopiëren kan ingewikkeld zijn
Voordelen Singleton
Minder koppelingen (overal bereikbaar)
Nadelen Singleton
Opgelet met thread safety
Eventueel delen blokkeren met lock
Aanmaken bij het laden van de klasse
Zuinig mee omspringen
Voordelen Builder
Schermt aanmaak complex object af
Biedt mogelijkheid om object in meerdere stappen en wisselende processen aan te maken
Verbergt interne representatie van het object
Objectimplementaties kunnen wisselen
Client kent enkel abstracte interface
Director legt de volgorde van constructie op
Nadelen Builder
Aanmaken object vereist meer domeinkennis dan bij een Factory
Voordelen Template Method
Algoritme is afgeschermd
Maximaliseren hergebruik
Algoritme op 1 plaats
Codeveranderingen op 1 plaats
Eenvoudig nieuwe objecten toevoegen
Kennis algoritme geconcentreerd in de abstracte klasse
Voordelen Chain of Responsibility
Ontkoppelt zender en ontvanger verzoek
Ontvangers eenvoudiger
Dynamisch verantwoordelijkheden toevoegen en verwijderen
Onderdelen van de ketting veranderen
Nadelen Chain of Responsibility
Uitvoering van het verzoek is niet gegarandeerd
Ketting verlaten zonder afgehandeld te zijn
Eventueel
Standaard afhandelen
Exceptie gooien
Gedrag at runtime bekijken of debuggen kan lastig zijn
Voordelen Mediator
Verhoogt herbruikbaarheid objecten door ze van het systeem los te koppelen
Vereenvoudigt onderhoud van het systeem door de logica op 1 plek onder te brengen
Vereenvoudigt en verminderd de verschillende berichten tussen objecten van het systeem verzonden worden
Protocol voor objecten
Nadelen Mediator
Zonder goed ontwerp kan Mediator-object zelf erg ingewikkeld worden
Voordelen Visitor
Bewerkingen toevoegen aan een samenstelling zonder de structuur van de samenstelling te veranderen
Nieuwe bewerkingen toevoegen is relatief makkelijk
De code voor de bewerkingen (die de Visitor) uitvoert is geconcentreerd op 1 plek
Nadelen Visitor
Afscherming klassen uit samenstelling wordt tenietgedaan
Wijzigingen in structuur samenstelling leveren meer problemen
Voordelen Interpreter
Elke grammaticale regel voorgesteld in klasse
Makkelijk taal implementeren
Taal makkelijk te wijzigen en uit te breiden
Extra methodes aan klassen
Nieuw gedrag toevoegen
Verfijndere validatie
Mooier afdrukken
Nadelen Interpreter
Lastig
Veel grammaticale regels
Beter parser / compiler gebruiken
Voordelen Memento
Toestand buiten het hoofdobject bewaren
Groter cohesie
Gegevens hoofdobject afschermen
Makkelijk vorige toestand herstellen
Nadelen Memento
Toestand bewaren en herstellen kan veel tijd kosten
Eventueel toestand incrementeel bewaren (enkel veranderingen)
Eventueel serialisatie overwegen