Hallo,
Ik moet een opdrachtje maken waarbij ik een pattern moet kiezen voor een bepaalde situatie. De situatie is dat we een CSV importbestand hebben met op elke regel een product, bijvoorbeeld, auto's, fietsen en kippen. Deze drie dingen hebben allemaal verschillende velden. Een auto heeft kleur, gewicht, aantal pk, etc. Een kip heeft een herkomst, smaak, gewicht, aantal decibel waarmij hij kan kraaien, etc.
Elke rij heeft bovendien een type veld, zodat je kunt zien of je een kip, auto of fiets in handen hebt. Welnu, met wat IO werk kun je in code over die regels itereren, maar dan moet er natuurlijk wat met die gegevens gebeuren. Wat er moet gebeuren is eigenlijk niet zo belangrijk. Laten we zeggen dat we Kip, Auto en Fiets objecten gaan vullen met de gegevens. We gaan dus hetzelfde doen (object vullen), maar voor elk type op een ietsje andere manier (Een Kip object vullen gaat op een andere manier dan een Fiets object).
Dit riekt volgens mij erg naar een strategy pattern. Mijn vraag is de volgende. Als ik nu verschillende strategieen maak dan moet ik nog steeds ergens gaan zitten if-elsen om de juiste strategie te kiezen (of ik moet reflectie gebruiken). Is strategy nou wel de goede weg? Uiteindelijk moet je toch ergens de keuze voor een concrete strategie maken en daardoor ontkom je toch nooit aan een if/else structuur? Of is daar nog een elegante oplossing voor, zoals een strategy teruggeven uit een factory op basis van de type String of iets dergelijiks? Of ga ik nu te ver?
Ik moet een opdrachtje maken waarbij ik een pattern moet kiezen voor een bepaalde situatie. De situatie is dat we een CSV importbestand hebben met op elke regel een product, bijvoorbeeld, auto's, fietsen en kippen. Deze drie dingen hebben allemaal verschillende velden. Een auto heeft kleur, gewicht, aantal pk, etc. Een kip heeft een herkomst, smaak, gewicht, aantal decibel waarmij hij kan kraaien, etc.
Elke rij heeft bovendien een type veld, zodat je kunt zien of je een kip, auto of fiets in handen hebt. Welnu, met wat IO werk kun je in code over die regels itereren, maar dan moet er natuurlijk wat met die gegevens gebeuren. Wat er moet gebeuren is eigenlijk niet zo belangrijk. Laten we zeggen dat we Kip, Auto en Fiets objecten gaan vullen met de gegevens. We gaan dus hetzelfde doen (object vullen), maar voor elk type op een ietsje andere manier (Een Kip object vullen gaat op een andere manier dan een Fiets object).
Dit riekt volgens mij erg naar een strategy pattern. Mijn vraag is de volgende. Als ik nu verschillende strategieen maak dan moet ik nog steeds ergens gaan zitten if-elsen om de juiste strategie te kiezen (of ik moet reflectie gebruiken). Is strategy nou wel de goede weg? Uiteindelijk moet je toch ergens de keuze voor een concrete strategie maken en daardoor ontkom je toch nooit aan een if/else structuur? Of is daar nog een elegante oplossing voor, zoals een strategy teruggeven uit een factory op basis van de type String of iets dergelijiks? Of ga ik nu te ver?