Middle
Welke ontwerppatronen kent u?
sobes.tech AI
Antwoord van AI
Creërende patronen:
- Factory Method (Fabriekmethode): Definieert een interface voor het maken van een object, maar laat subklassen beslissen welke klasse geïnstantieerd wordt.
- Abstracte Fabriek (Abstract Factory): Biedt een interface voor het maken van families van gerelateerde of afhankelijke objecten zonder hun concrete klassen te specificeren.
- Bouwer (Builder): Scheidt de constructie van een complex object van zijn representatie, zodat hetzelfde constructieproces verschillende representaties kan creëren.
- Prototype (Prototype): Maakt nieuwe objecten door een bestaand exemplaar te kopiëren.
- Singleton (Singleton): Garandeert dat een klasse slechts één instantie heeft en biedt een globale toegangspunt tot die instantie.
Structurele:
- Adapter (Adapter): Converteert de interface van een klasse naar een andere interface die de clients verwachten.
- Bridge (Bridge): Scheidt een abstractie van zijn implementatie zodat ze onafhankelijk kunnen variëren.
- Composiet (Composite): Combineert objecten in boomstructuren om part-whole hiërarchieën te representeren. Maakt het mogelijk voor clients om individuele objecten en hun samenstellingen op een uniforme manier te behandelen.
- Decorator (Decorator): Voegt dynamisch nieuwe verantwoordelijkheden toe aan een object. Is een flexibele alternatief voor subklassering om functionaliteit uit te breiden.
- Facade (Fasade): Biedt een eenduidige interface voor een set interfaces in een subsysteem. Definieert een high-level interface die het subsysteem eenvoudiger maakt in gebruik.
- Flyweight (Flyweight): Wordt gebruikt voor het efficiënt delen van een groot aantal vergelijkbare objecten.
- Proxy (Proxy): Biedt een vervangend object dat de toegang tot een ander object controleert.
Gedragsmatige:
- Responsabiliteitsketen (Chain of Responsibility): Staat toe dat verzoeken sequentieel worden doorgegeven langs een keten van handlers. Elke handler beslist of hij het verzoek behandelt of doorgeeft aan de volgende.
- Commando (Command): Encapsuleert een verzoek als een object, waardoor het mogelijk is om clients te parametriseren met verschillende verzoeken, verzoeken in een wachtrij te plaatsen of te loggen, en undo-operaties te ondersteunen.
- Iterator (Iterator): Biedt een manier om sequentieel toegang te krijgen tot de elementen van een geaggregeerd object zonder de interne representatie te onthullen.
- Mediator (Mediator): Definieert een object dat de interactie van een set objecten kapselt. Bevordert losse koppeling door expliciete verwijzingen tussen objecten te vermijden.
- Memento (Memento): Vangt de interne staat van een object vast en externaliseert deze, zonder de encapsulatie te schenden, zodat het object later kan worden hersteld naar die staat.
- Observer (Observer): Definieert een "one-to-many" afhankelijkheid tussen objecten, zodat wanneer één object van toestand verandert, alle afhankelijke objecten automatisch worden geïnformeerd en bijgewerkt.
- State (State): Staat een object toe om zijn gedrag te veranderen wanneer zijn interne toestand verandert. Het object lijkt van klasse te veranderen.
- Strategy (Strategy): Definieert een familie van algoritmen, kapselt elk en maakt ze verwisselbaar. Staat toe dat het algoritme onafhankelijk van de clients die het gebruiken varieert.
- Template-methode (Template Method): Definieert de skelet van een algoritme in een operatie, waarbij sommige stappen worden overgelaten aan subklassen. Laat subklassen toe om bepaalde stappen van het algoritme te herdefiniëren zonder de structuur te veranderen.
- Visitor (Visitor): Vertegenwoordigt een operatie die moet worden uitgevoerd op de elementen van een objectstructuur. Maakt het mogelijk om een nieuwe operatie te definiëren zonder de klassen van de elementen te wijzigen.