Ik ben een beetje in UML aan het ontwerpen en liep tegen de volgende kwestie aan. Ik heb het idee dat hier wel een design pattern o.i.d. voor bestaat en heb daar ook naar gezocht maar niks gevonden.
DE SITUATIE (fictief)
In het systeem worden verschillende soorten klanten bijgehouden, elke klant heeft een aantal gegevens als naam, adres etc. Maar de overige eigenschappen van een klant zijn afhankelijk van het soort klant dat het is.
Bijvoorbeeld: Van een zwembadklant wordt naast naam en adres ook de zwemdiploma bijgehouden. En van een schoenwinkelklant wordt naast naam en adres ook de schoenmaat bijgehouden.
Het leuke is dat de soorten klanten niet vast staan, in het systeem kan een nieuwe klantsoort worden ingevoerd waarvoor bijvoorbeeld naast de naam en adres ook de muziekale voorkeur wordt bijgehouden. Als er vervolgens een nieuwe klant in het systeem ingevoerd wordt, dan moeten naam en adres sowieso ingevoerd worden en afhankelijk van het soort klant nog een aantal andere eigenschappen.
IMPLEMENTATIE
Stel ik heb een klasse Klant. Klant heeft een aantal methodes die er niet toe doen en een aantal attributen als naam adres woonplaats die ELKE klant heeft. Hoe kan je dan het best bovenstaande situatie implementeren? Ik zat te denken aan een associatie van de klasse Klant naar de klasse KlantType. En dan zou je bijvoorbeeld in KlantType kunnen bijhouden welke klanteigenschappen er bij dat klanttype horen (zoals schoenmaat, oogkleur, leeftijd, whatever). Die eigenschappen moet je dan bij Klant zien te krijgen om de eigenschappen daar een waarde te geven o.i.d. (schoenmaat=43).
VRAGEN:
1. Hoe zou je dit het beste kunnen aanpakken?
2. Bestaat er een design pattern die dit probleem omschrijft?
PS Als iemand een duidelijkere topictitel weet...
DE SITUATIE (fictief)
In het systeem worden verschillende soorten klanten bijgehouden, elke klant heeft een aantal gegevens als naam, adres etc. Maar de overige eigenschappen van een klant zijn afhankelijk van het soort klant dat het is.
Bijvoorbeeld: Van een zwembadklant wordt naast naam en adres ook de zwemdiploma bijgehouden. En van een schoenwinkelklant wordt naast naam en adres ook de schoenmaat bijgehouden.
Het leuke is dat de soorten klanten niet vast staan, in het systeem kan een nieuwe klantsoort worden ingevoerd waarvoor bijvoorbeeld naast de naam en adres ook de muziekale voorkeur wordt bijgehouden. Als er vervolgens een nieuwe klant in het systeem ingevoerd wordt, dan moeten naam en adres sowieso ingevoerd worden en afhankelijk van het soort klant nog een aantal andere eigenschappen.
IMPLEMENTATIE
Stel ik heb een klasse Klant. Klant heeft een aantal methodes die er niet toe doen en een aantal attributen als naam adres woonplaats die ELKE klant heeft. Hoe kan je dan het best bovenstaande situatie implementeren? Ik zat te denken aan een associatie van de klasse Klant naar de klasse KlantType. En dan zou je bijvoorbeeld in KlantType kunnen bijhouden welke klanteigenschappen er bij dat klanttype horen (zoals schoenmaat, oogkleur, leeftijd, whatever). Die eigenschappen moet je dan bij Klant zien te krijgen om de eigenschappen daar een waarde te geven o.i.d. (schoenmaat=43).
VRAGEN:
1. Hoe zou je dit het beste kunnen aanpakken?
2. Bestaat er een design pattern die dit probleem omschrijft?
PS Als iemand een duidelijkere topictitel weet...
Metal up your ass